Apparatus and methods for semi-autonomous cleaning of surfaces

ABSTRACT

An apparatus includes a frame, a drive assembly supported by the frame, an electronic system supported by the frame, and a cleaning assembly coupled to the frame. The drive assembly is configured to move the frame along a surface. The cleaning assembly is configured to engage the surface to transfer detritus from the surface to a storage volume supported by the frame. The electronic system has at least a processor and a memory. The processor is configured to define a path along which the drive assembly travels and is configured to redefined a path along which the drive assembly travels based on at least one signal received from at least one sensor.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/137,510, entitled “Apparatus and Methods for Semi-Autonomous Cleaningof Surfaces, filed Apr. 25, 2016, which claims priority to and thebenefit of U.S. Provisional Patent Application Ser. No. 62/152,303,entitled “Apparatus and Methods for Semi-Autonomous Cleaning ofSurfaces,” filed Apr. 24, 2015, the disclosure of each of which isincorporated herein by reference in its entirety.

BACKGROUND

The embodiments described herein relate to apparatus and methods forcleaning a surface and more particularly, to apparatus and methods forat least semi-autonomous cleaning of floors and/or other surfaces.

The use of at least semi-autonomous devices configured to perform a setof tasks is known. For example, robots can be used to clean a surface,mow a lawn, collect items from a stocked inventory, etc. Such devicescan be configured to operate in a number of different ways; however,central to all these devices is the ability for the device to determineits position relative to a given area. Specifically, some known devicesfor at least semi-autonomous cleaning of a surface such as a floor, canbe configured to determine its location relative to an area of thatsurface. In some instances, such devices and/or robots can include anynumber of sensors, cameras, light emitting and/or sensing device (e.g.,visible light, infrared light, etc.), radio and/or sound wave emitters(e.g., sonar), global positioning system (GPS) radios, and/or any otherdevice used to locate the device and/or robot within an area. Althoughthese devices (robots) are configured to operate in at least asemi-autonomous manner, optimal design and/or control still presentschallenges.

For example, in some instances, object-sensing methods such as sonar canbe limited, inaccurate, and/or difficult to program. In other instances,a robot that is configured (e.g., programed) to travel along apredetermined path may encounter an unexpected obstacle or the like,which can cause the robot to deviate from the predetermined path in amanner that may be unrecoverable without user (e.g., human)intervention. Moreover, defining the predetermined path can includeextensive time and/or programing and is often not the most efficientpath along which the robot should travel. In still other instances, someknown robots fail to provide a user with an indication of the robotsposition, progress, and/or status. In addition, the arrangement of somerobots configured to clean a surface, may lack a suitable drive systemthat can allow the robot to reach into corners and/or otherwiseeffectively clean the desired surface.

Thus, a need exists for improved apparatus and methods forsemi-autonomous cleaning of surfaces.

SUMMARY

Apparatus and methods for at least semi-autonomous cleaning of floorsand/or other surfaces are described herein. In some embodiments, anapparatus includes a frame, a drive system supported by the frame, anelectronic system supported by the frame, and a cleaning assemblycoupled to the frame. The drive system is configured to move the framealong a surface. The cleaning assembly is configured to engage thesurface to transfer detritus from the surface to a storage volumesupported by the frame. The electronic system has at least a processorand a memory. The processor is configured to define a path along whichthe drive system travels and is configured to redefine a path alongwhich the drive system travels based on at least one signal receivedfrom at least one sensor.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic illustration of a semi-autonomous robot accordingto an embodiment.

FIGS. 2-4 are a front perspective, rear perspective, and top perspectiveview of a semi-autonomous robot according to an embodiment.

FIG. 5 is a rear view of the semi-autonomous robot of FIG. 2 with anelectronics cover removed.

FIG. 6 is a rear perspective view of a portion of a frame and a drivesystem included in the semi-autonomous robot of FIG. 2.

FIG. 7 is a top perspective view of a portion of the frame and the drivesystem included in the semi-autonomous robot of FIG. 2.

FIG. 8 is a perspective view of a wheel included in the drive system ofFIG. 6

FIGS. 9 and 10 are a perspective view and a rear view, respectively, ofa semi-autonomous robot according to an embodiment.

FIG. 11 is an exploded view of a portion of the semi-autonomous robot ofFIG. 9.

FIG. 12 is a perspective view of a drive system included in thesemi-autonomous robot of FIG. 9.

FIG. 13 is an exploded view of the drive system of FIG. 12.

FIGS. 14 and 15 are a front view and a rear view, respectively, of thedrive system of FIG. 12.

FIG. 16 is a perspective view of a cleaning assembly included in thesemi-autonomous robot of FIG. 9.

FIG. 17 is a perspective view of the cleaning assembly of FIG. 16without a cover.

FIGS. 18 and 19 are a front perspective view and a rear perspectiveview, respectively, of a semi-autonomous robot according to anembodiment.

FIG. 20 is a top view of the semi-autonomous robot of FIG. 18 with a lidremoved.

FIG. 21 is a perspective view of a portion of a frame, a drive system,and a cleaning assembly included in the semi-autonomous robot of FIG.18.

FIG. 22 is an exploded view of the portion of the frame, the drivesystem, and the cleaning assembly of FIG. 21.

FIG. 23 is a bottom perspective view of the portion of the frame and thedrive system of FIG. 21.

FIG. 24 is a top view of the drive system of FIG. 21.

FIG. 25 is an exploded view of a drive mechanism included in the drivesystem of FIG. 21.

FIGS. 26 and 27 are a top perspective view and a bottom perspective viewof the cleaning assembly of FIGS. 21 and 22.

FIG. 28 is a perspective view of the cleaning assembly of FIGS. 21 and22 with a shroud removed.

FIGS. 29 and 30 are a front perspective view and a rear perspectiveview, respectively, of a semi-autonomous robot according to anembodiment.

FIG. 31 is a top perspective view of the semi-autonomous robot of FIG.29 with one or more lids removed.

FIG. 32 is a partial exploded view of a portion of a frame included inthe semi-autonomous robot of FIG. 29.

FIG. 33 is a perspective view of a portion of the frame, a drive system,and a cleaning assembly included in the semi-autonomous robot of FIG.29.

FIG. 34 is a partial exploded view of the portion of the frame, thedrive system, and the cleaning assembly of FIG. 33.

FIG. 35 is a partial exploded view of the portion of the frame and thedrive system of FIG. 33.

FIG. 36 is a front perspective view of a portion of the frame and thedrive system of FIG. 33.

FIG. 37 is a partial exploded view of a drive mechanism included in thedrive system of FIG. 33.

FIG. 38 is a rear perspective view of the cleaning assembly of FIG. 33.

FIGS. 39 and 40 are a right perspective view and a left perspectiveview, respectively, of the cleaning assembly of FIG. 38 illustratedwithout one or more portions to shown internal components.

FIGS. 41 and 42 are a top perspective view and a bottom perspective viewof a cleaning assembly according to an embodiment.

FIG. 43 is a perspective view of the cleaning assembly of FIGS. 41 and42 with a shroud removed.

FIG. 44 is an illustration of methods for defining a cleaning plan.

DETAILED DESCRIPTION

The devices and methods described herein can be used, for example, in atleast semi-autonomous floor sweeping, vacuuming, and/or scrubbing. Insome embodiments, an apparatus includes a frame, a drive systemsupported by the frame, an electronics system supported by the frame,and a cleaning assembly coupled to the frame. The drive system isconfigured to move the frame along a surface. The cleaning assembly isconfigured to engage the surface to transfer detritus from the surfaceto a storage volume supported by the frame. The electronics system hasat least a processor and a memory. The processor is configured to definea path along which the drive system travels and is configured toredefine a path along which the drive system travels based on at leastone signal received from at least one sensor.

In some embodiments, a semi-autonomous cleaning robot includes a frame,a drive system, a cleaning assembly, and an electronics system. Thedrive system is supported by the frame and is configured to move theframe along a surface. The drive system has at least one wheelconfigured to rotate about a first axis and a second axis non-parallelto the first axis. The cleaning assembly is coupled to the frame and isconfigured to engage the surface to transfer detritus from the surfaceto a storage volume supported by the frame. The electronics system issupported by the frame and has at least a processor and a memory. Theprocessor is configured to execute a set of instructions stored in thememory associated with defining a path. The drive system is configuredto move the cleaning assembly along the path and the cleaning assemblyis configured to engage the surface to transfer detritus from thesurface to the storage volume. The processor is configured to define aredefined path along which the drive system is configured to move thecleaning assembly based on receiving at least one signal associated withthe path.

In some embodiments, a semi-autonomous cleaning robot includes a framesupporting at least one storage volume, a drive system coupled to theframe, a cleaning assembly coupled to the frame, and an electronicssystem supported by the frame. The drive system is configured to movethe frame along a surface. The drive system has a set of wheels, witheach wheel being configured to rotate about a wheel axis in response toan output of a different motor from a set of motors. An angle definedbetween each wheel axis being substantially equal. Each wheel includes aset of rollers, each of which is configured to rotate about anindependent roller axis non-parallel to the wheel axis associated withthat wheel. The cleaning assembly is configured to engage the surface totransfer detritus from the surface to the at least one storage volume.The electronics system is configured to send one or more signals, to atleast one motor from the set of motors, indicative of an instruction torotate the associated wheel about the associated wheel axis to move thecleaning assembly along the surface in a predetermined path.

A method of at least semi-autonomous cleaning of a surface using acleaning robot with an electronics system configured to control at leasta portion of the cleaning robot includes defining an initial data setrepresenting a map of the surface to be cleaned based on data receivedat a processor of the electronics system from at least one sensorincluded in the cleaning robot. The processor decomposes the initialdata set into multiple sector data sets, in which each sector data setrepresents a sector of the map. An intra-sector data set is defined foreach sector data set. Each intra-sector data set represents anintra-sector path along the associated sector of the map based at leastin part on a calculated efficiency associated with the cleaning robotcleaning a portion of the surface corresponding to that sector. Aninter-sector data set is defined that represents an inter-sector pathalong the map based at least in part on combining each intra-sector pathand a calculated efficiency associated with the cleaning robot moving onthe surface and substantially along the inter-sector path to clean thesurface.

As used in this specification, the singular forms “a,” “an” and “the”include plural referents unless the context clearly dictates otherwise.Thus, for example, the term “a member” is intended to mean a singlemember or a combination of members, “a material” is intended to mean oneor more materials, or a combination thereof.

As used herein, the term “set” can refer to multiple features or asingular feature with multiple parts. For example, when referring to setof walls, the set of walls can be considered as one wall with multipleportions, or the set of walls can be considered as multiple, distinctwalls. Thus, a monolithically constructed item can include a set ofwalls. Such a set of walls may include multiple portions that are eithercontinuous or discontinuous from each other. For example, amonolithically constructed wall can include a set of detents can be saidto form a set of walls. A set of walls can also be fabricated frommultiple items that are produced separately and are later joinedtogether (e.g., via a weld, an adhesive, or any suitable method).

As used herein the term “module” refers to any assembly and/or set ofoperatively-coupled electrical components that can include, for example,a memory, a processor, electrical traces, optical connectors, software(executing in hardware), and/or the like. For example, a module executedin the processor can be any combination of hardware-based module (e.g.,a field-programmable gate array (FPGA), an application specificintegrated circuit (ASIC), a digital signal processor (DSP)) and/orsoftware-based module (e.g., a module of computer code stored in memoryand/or executed at the processor) capable of performing one or morespecific functions associated with that module.

As used herein, the term “kinematics” describes the motion of a point,object, or system of objects without considering a cause of the motion.For example, the kinematics of an object can describe a translationalmotion, a rotational motion, or a combination of both translationalmotion and rotational motion. When considering the kinematics of asystem of objects, known mathematical equations can be used to describeto the motion of an object relative to a plane or set of planes, an axisor set of axes, and/or relative to one or more other objects included inthe system of objects.

As used herein, the terms “feedback”, “feedback system”, and/or“feedback loop” relate to a system wherein past or presentcharacteristics influence current or future actions. For example, adrive mechanism is said to be a feedback system wherein the state of thedrive mechanism (e.g., position, direction, velocity, acceleration,etc.) is dependent on a current or past state being fed back to thedrive mechanism. In some instances, a feedback system can be anelectromechanical system including a number of relays, switches, and/orthe like that can open or close an electric circuit based on a signalreceived from a sensor, a flow or a direction of flow of electricity,and/or the like. In some instances, a feedback system can be controlledand/or implemented in a programmable logic controller (PLC) that can usecontrol logic to perform one or more actions based on an input from asystem component, a state of an electric circuit, and/or a flow ofelectric power. In some instances, a PLC can include a control schemesuch as, for example, a proportional-integral-derivative (PID)controller. As such, an output of some feedback systems can be describedmathematically by the sum of a proportional term, an integral term, anda derivative term. PID controllers are often implemented in one or moreelectronic devices. In such controllers, the proportional term, theintegral term, and/or the derivative term can be actively “tuned” toalter characteristics of the feedback system.

Electronic devices often implement feedback systems to actively controlthe kinematics of mechanical systems in order to achieve and/or maintaina desired system state. For example, a feedback system can beimplemented to control a force within a system (e.g., a mass-springsystem and/or the like) by changing the kinematics and/or the positionof one or more components relative to any other components included inthe system. Expanding further, the feedback system can determine currentand/or past states (e.g., position, velocity, acceleration, force,torque, tension, electrical power, etc.) of one or more componentsincluded in the mechanical system and return the past and/or currentstate values to, for example, a PID control scheme. In some instances,an electronic device can implement any suitable numerical method or anycombination thereof (e.g., Newton's method, Gaussian elimination,Euler's method, LU decomposition, etc.). Thus, based on the past and/orcurrent state of the one or more components, the mechanical system canbe actively changed to achieve a desired system state.

In some embodiments, a device (e.g., a robot) for autonomous floorsweeping and scrubbing can include an electronics system configured toperform and/or execute a set of instructions and/or modules to controlat least one of a drive system, a cleaning assembly, a changeablecleaning head, a vacuum source, a pump, a motor, and/or the like basedon one or more signals associated with an operational condition of therobot and/or an environmental condition associated with the area to becleaned. For example, in some embodiments, the electronics system caninclude at least a processor, a memory, and a power source, as well asany suitable sensor, encoder, beacon, camera, and/or the like(collectively referred to herein as “sensors”) and can perform anynumber of processes associated with controlling a portion of the robot(e.g., via a feedback control system, PLC, PID, etc.) to maintain safeoperation of the robot as well as to provide environmental awarenesssuch as localization and/or mapping. Such sensors can be incommunication (e.g., at least indirectly) with the processor and/or aremote control device in communication with the electronics system suchas a remote controller, a mobile device, a smartphone, a tablet, alaptop, a personal computer, and/or the like.

By way of example, in some embodiments, the processor and/or othersuitable controller can be in communication with one or more lasertransceivers, cameras, radios, encoders, inertial measurement units(IMUs), range sensors, and/or any other suitable device configured tosend data associated with at least one operational condition, status,state, etc. of the robot. Specifically, a laser transceiver can be atwo-dimensional (2-D) laser scanner light-radar (LIDAR) system such as aUTM-30LX made by Hokuyo Automatic Co., based in Japan; a camera can be athree-dimensional (3-D) camera such as a Kinect v2 optical camera and/orsensor made by Microsoft Corp., based in Redmond, Wash., USA; a radio orradio beacon can be radio transceiver (e.g., an ultra-wideband radio)such as a DW1000 made by decaWave, based in Dublin, Ireland; an encodercan be a wheel encoder or the like such as an E3 series optical encodermade by US Digital, based in Vancouver, Washington; an IMU can bemulti-axis, multi-sensor device (e.g., a 3-axis compass, 3-axisgyroscope, and 3-axis accelerometer sensor) such as a PhidgetSpatial3/3/3 made by Phidgets, based in Calgary, Alberta, Canada; a rangesensor can be an infrared (IR) distance sensor such as a GP2Y seriesmade by Sharp, based in Japan. While specific components (e.g., sensors,transceivers, cameras, radios, encoders, IMUs, etc.) are described, thelist of components is not an exhaustive listing of electric and/orelectronic devices configured to facilitate the operation of theembodiments described herein. Thus, any of the embodiments describedherein can include any suitable electric and/or electronic device.Similarly, any of the embodiments described herein can include sensor orthe like that are different from those listed above, yet performsubstantially the same function.

In some embodiments, a processor of an electronics system included in arobot can execute a set of instructions, code, and/or modules associatedwith formulating a cleaning fluid. For example, the processor canexecute a set of instructions and/or modules such that a predeterminedvolume of a desired cleaning chemical is mixed with a diluent (e.g.,water) to formulate a cleaning fluid having a desired dilution rate fora given floor type, as described in further detail herein. In someembodiments, the electronics system can include a user interface such asa display to allow a user to interact with the robot and/or tographically represent one or more operating conditions associated withthe robot. In some embodiments, the electronics system and/or theprocessor included therein can be configured to send a signal to aremote control device (described above) indicative of an instruction topresent data on a display of the remote control device, whichgraphically represents the one or more operating conditions of therobot, a status associated with the surface being cleaned, and/or thelike. For example, the processor can determine and/or define a progressand/or planning report based on one or more operating conditions of therobot, one or more environmental conditions associated with the area tobe cleaned by the robot, and/or a user input and can send a signal tothe user interface and/or the remote control device indicative of aninstruction to graphically represent data associated with the one ormore operating conditions and/or the one or more environmentalconditions.

In some embodiments, a robot can include a drive system configured toadvance the robot along a surface to place a cleaning assembly (e.g., acleaning head or the like) into a corner or other tight area withoutresulting in the robot becoming stuck, trapped, and/or otherwise able tomove. In some embodiments, the drive system can allow for cleaning closeto edges and corners, cleaning in areas with relatively complex layouts,and/or cleaning a new location without extensive programming. In someembodiments, the drive system can be such that each powered wheel isassociated with and/or is driven by its own motor. Moreover, in someembodiments, a drive system of a robot can be configured for holonomicmotion, in which the drive system can rotate each wheel about anassociated axis while allowing for translation of the robot withthree-degrees of freedom in a plane associated with the surface on whichthe robot is traveling. That is to say, the drive system can beconfigured for holonomic motion, which can allow for rotation of thewheels and translation of the robot in the x and y direction. In someembodiments, the arrangement of the drive system can allow for precisionpoint turns (e.g., “zero-degree” turns) while against a wall, or in acorner. For example, in some embodiments, the robot can include acleaning assembly or cleaning head, which can have an edge and/orperimeter on an axis between two driven wheels that extends beyond anedge or perimeter of the robot (e.g., of the drive system) and/or whichcan be disposed forward of the drive system and/or other portions of therobot. As such, the drive system can position the cleaning assemblyand/or cleaning head into corners and/or other objects, allow thecleaning assembly and/or cleaning head to clean an associated area, andthen drive out of the corner and/or out of contact with an object whilestill cleaning.

FIG. 1 is a schematic illustration of device 100 such as, for example, arobot configured to clean a surface, according to an embodiment. Thedevice 100 (also referred to herein as “cleaning robot” or “robot”)includes at least a frame 110, a drive system 140, an electronics system190, and a cleaning assembly 165. The cleaning robot 100 can be used toclean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface areasuch as, for example, a floor of a home, commercial building, warehouse,etc. The robot 100 can be any suitable shape, size, or configuration andcan include one or more systems, mechanisms, assemblies, orsubassemblies (not shown in FIG. 1) that can perform any suitablefunction associated with, for example, traveling along a surface,mapping a surface, cleaning a surface, and/or the like.

The frame 110 of the robot 100 can be any suitable shape, size, and/orconfiguration. For example, in some embodiments, the frame 110 caninclude a set of components or the like, which are coupled to form asupport structure configured to support the drive system 140, thecleaning assembly 165, and the electronic system 190. In someembodiments, the frame 110 can include any suitable components such as,for example, sheets, tubes, rods, bars, etc. In some embodiments, suchcomponents can be formed from a metal or metal alloy such as aluminum,steel, and/or the like. In other embodiments, such components can beformed from a thermoplastic and/or polymer such as nylons, polyesters,polycarbonates, polyacrylates, ethylene-vinyl acetates, polyurethanes,polystyrenes, polyvinyl chloride (PVC), polyvinyl fluoride, poly(vinylimidazole), and/or blends and copolymers thereof.

In some embodiments, the frame 110 can include a set of componentsconfigured to define one or more inner volumes. For example, the frame110 can include one or more sheet metal components that can define oneor more inner volumes. In other embodiments, the frame 110 can includeand/or can be coupled to a body, cover, skin, etc. that can define theone or more inner volumes. In this embodiment, the frame 110 (or bodycoupled to the frame 110) defines at least detritus volume 112. Thedetritus volume 112 can be any suitable shape, size, or configurationand can be selectively sealable. For example, in some embodiments, theframe 110 can be coupled to a body of the robot 100, which defines thedetritus volume 112. The body can include a lid or cover configured toclose, cover, and/or otherwise obstruct an opening of the body in fluidcommunication with the detritus volume 112 (e.g., via a tube, conduit,channel, opening, etc.). Moreover, as shown in FIG. 1, the cleaningassembly 165 can be in fluid communication with the detritus volume 112.Thus, the cleaning assembly 165 can transfer refuse, detritus, fluid,and/or the like from the surface on which the robot 100 is moving to thedetritus volume 112. Similarly, the frame 110 can define and/or can becoupled to a body that can define an electronics system volume, acleaning solution volume, a solution recovery volume, a dry debrisvolume, and/or any other suitable volume.

The drive system 140 of the robot 100 is coupled to and/or is otherwisesupported by the frame 110. The drive system 140 can include one or morewheels configured to roll along a surface to move the robot 100 thereon.In some embodiments, the one or more wheels can be, for example,omni-wheels or the like. In such embodiments, the wheels can be coupledto the frame and can be configured to rotate about an axis in responseto a force. The wheels define, for example, a circumference along whicha set of rollers are disposed. The set of rollers can be relativelysmall rollers, which are each configured to rotate about an axisassociated with that roller. The axis of each roller can be, forexample, perpendicular to the axis about which the wheel rotates. Inthis manner, as the wheel is rotated about its axis, the rollersdisposed along the circumference of the wheel can be configured torotate about the associated axis, which in turn, can advance the robot100 in any suitable direction. In other words, the drive system 140 canbe configured for holonomic motion.

In some embodiments, the drive system 140 can include one or more motorsconfigured to power (e.g., drive, rotate, spin, engage, activate, etc.)the drive system 140. In some embodiments, the motor(s) can beconfigured to rotate the wheels of the drive system 140 at any suitablerate and/or any suitable direction (e.g., forward or reverse). In someembodiments, the drive system 140 can be a differential drive systemincluding a first wheel coupled to a first motor and a second wheelcoupled to a second motor. The first wheel and the second wheel, forexample, can be disposed on opposite sides of the frame 110. In someembodiments, the electronic system 190 can be operatively coupled (e.g.,electrically connected) to the first motor and the second motor suchthat the electronic system 190 can send an electronic signal associatedwith operating the motors. In addition, the drive system 140 can includeone or more wheels that are coupled to the frame 110 in a passivearrangement. That is to say, the drive system 140 can include anysuitable number of wheels that are not coupled to a motor.

In some embodiments, a drive system of a robot can be a differentialdrive system, a single steerable wheel drive system, and/or anomnidirectional drive system. In some embodiments, a differential drivesystem and/or an omnidirectional drive system can use two or moremotors, which each rotate an associated wheel to drive a robot along asurface. Such a wheel, for example, can be an omni-directional wheel(also referred to herein as “omni-wheel”) configured to provide rotationabout at least two axes, which can allow the robot to travel in anysuitable direction. In some embodiments, a single steerable wheel drivesystem can use at least one motor to rotate the steerable wheel to drivethe robot along the surface and/or at least one motor or other inputmechanism to steer the steerable wheel.

In some embodiments, the motors can include a clutch, a brake, or thelike configured to substantially lock the motors in response to a signalor a lack of a signal from the electronics system 190. Similarly stated,the motors can be placed in a locked configuration to limit movement ofthe robot 100 in response to a flow electric power or a lack of electricpower from the electronics system 190. In some instances, theelectronics system 190 can be configured to send a first signal to thefirst motor to cause the first motor to rotate the first wheel in afirst rotational direction and can send a second signal to the secondmotor to cause the second motor to stop a rotation of the second wheelin a second rotational direction opposite the first rotationaldirection. As such, the electronics system 190 can send a set of signalsto the drive system 140 to cause the robot 100 to turn in response tothe signals from the electronics system 190, as described in furtherdetail herein. In some embodiments, the arrangement of the drive system140 can allow the robot 100 to place the cleaning assembly 165 intocorners and/or other tight areas that otherwise could be missed withsome known drive systems.

Although the drive system 140 is described above as including a firstwheel and a second wheel coupled to a first motor and a second motor,respectively, in other embodiments, the drive system 140 can include anysuitable number of wheels and/or motors. For example, in someembodiments, the drive system 140 can include three wheels, each ofwhich is coupled to its own motor. In some embodiments, the wheels canbe coupled to the frame 110 in a substantially triangular arrangement orthe like. For example, in some embodiments, the wheels can be disposedat an angle relative to the other wheels such as, for example, 120degrees. As described above, each wheel can be an omni-wheel or thelike. Therefore, the electronics system 190 can be configured to send aset of signals to the drive system 140 and more particularly to one ormore motors included in the drive system 140 to cause the one or moremotors to rotate its associated wheel, thereby moving the robot 100 in adesired direction.

In other embodiments, the drive system 140 can include a singlesteerable wheel assembly and any suitable number of passive wheels (asdescribed above). The steerable wheel assembly can include at least onemotor configured to rotate a wheel included in the steerable wheelassembly. The steerable wheel assembly can be rotatably coupled to theframe 110. In some embodiments, the steerable wheel assembly can includea motor configured to rotate the steerable wheel assembly relative tothe frame 110. In this manner, the electronic system 190 can send a setof signals to the drive system 140 to cause the wheel to rotate about afirst axis and the steerable wheel assembly to rotate about a secondaxis perpendicular to the first axis. Thus, the drive system 140 canmove the robot 100 in any suitable direction in response to a set ofsignals received from the electronics system 190.

The cleaning assembly 165 included in the robot 100 can be any suitableshape, size, and/or configuration. As described above, the cleaningassembly 165 is coupled to and/or is otherwise supported by the frame110. More particularly, in some embodiments, the cleaning assembly 165can be coupled to and/or can be suspended from the frame 110 via anysuitable linkage or the like. In some embodiments, such linkage can, forexample, allow movement of the cleaning assembly 165 relative to theframe 110. For example, in some embodiments, the linkage can beconfigured to move the cleaning assembly 165 closer to or away from theframe 110, which in turn, can move the cleaning assembly 165 away fromor closer to a surface along which the robot 100 moves. In someembodiments, the robot 100 can include an actuator and/or the likeconfigured to move the linkage relative to the frame 110 to place thecleaning assembly 165 in a desired position.

The cleaning assembly 165 can include any suitable cleaning mechanism,brush, roller, disc, scrubber, orbital, and/or the like configured toengage the surface on which the robot 100 travels. For example, in someembodiments, the cleaning assembly 165 can include a housing or the likethat can define a vacuum chamber, and can include one or morecylindrical brushes rotatably coupled to the housing and at leastpartially disposed in the vacuum chamber. The one or more brushes can beoperably coupled to a motor configured to rotate the one or more brushesrelative to the housing. In some embodiments, the cleaning assembly 165can include a cleaning head or the like can include one or more of acylindrical cleaning member, a disc cleaning member, an orbital cleaningmember, and/or the like. Such a cleaning head and/or the one or morecleaning members included therein can be swappable from one type (e.g.,a cylindrical cleaning member) to another type (e.g., an orbitalcleaning member), thereby allowing the cleaning assembly 165 to cleandifferent types of surfaces.

In some embodiments, the robot 100 can include a skirt or the like (notshown in FIG. 1) that can form a squeegee and/or the like circumscribingat least a portion of the robot 100 to direct detritus toward thecleaning assembly 165. For example, in some embodiments, the skirt canbe coupled to the frame 110 and can be configured to extend beyond arear portion of the robot 100 such that at least a portion of the skirtis in contact with the surface. In some embodiments, the portion of theskirt in contact with the surface can have a width or length that isgreater than a width of the frame 110. In some embodiments, at least aportion of the skirt is formed from and/or includes a substantiallyresilient, compliant, and/or otherwise flexible material that can bedeformed when placed in contact with the surface. Thus, as the robot 100is moved along the surface (e.g., via the drive system 140), the skirtcan trail the robot 100 to limit and/or substantially prevent the robot100 from passing over detritus. In some embodiments, the skirt can becoupled to the frame 110 via a bias member and/or spring configured toexert a force on a portion of the skirt to maintain contact between theskirt and the surface. As such, the skirt can be used as a squeegee orthe like configured to limit and/or substantially prevent the robot 100from passing over a fluid. Said another way, the skirt can act as asqueegee or the like that can absorb and/or direct a fluid such thatsubstantially all the fluid (e.g., a used cleaning fluid or the like) isabsorbed and/or entrained in a flow of detritus entering the cleaningassembly 165.

The cleaning assembly 165 can also include a pump or the like configuredto generate a negative pressure within the vacuum chamber. In someembodiments, the pump can be coupled to the housing and in fluidcommunication with the vacuum chamber. In other embodiments, the pumpcan be disposed, for example, within the detritus volume 112 of theframe 110 and in fluid communication with the vacuum chamber via a tube,conduit, channel, opening, port, etc. The cleaning assembly 165 is incommunication with the electronics system 190 and is configured to senda signal to and/or receive a signal from the electronics system 190associated with the operation of the cleaning assembly 165. For example,in some embodiments, the electronics system 190 can send a signal to thecleaning assembly 165 that can cause the linkage coupling the cleaningassembly 165 to the frame 110 to be actuated, can cause the pump totransition from an “on” operational state to an “off” operational stateand/or to change a flow rate through the pump, can cause the motoroperably coupled to the one or more brushes to transition from an “on”operational state to an “off” operational state and/or to change anoutput speed thereof, and/or the like. Thus, the cleaning assembly 165can be configured to engage the surface on which the robot 100 travelsto clean the surface. Moreover, in some embodiments, the electronicssystem 190 can control, for example, a pressure exerted by a cleaningmember, brush, disc, orbital, and/or cleaning head against the surfacebeing cleaned.

As described above, the electronics system 190 included in the robot 100can control at least a portion thereof. The electronic system 190 caninclude at least a memory, a processor, and an input/output (I/O)interface. The memory can be, for example, a random access memory (RAM),a memory buffer, a hard drive, a read-only memory (ROM), an erasableprogrammable read-only memory (EPROM), and/or the like. In someembodiments, the memory stores instructions to cause the processor toexecute modules, processes, and/or functions associated with controllingone or more mechanical and/or electrical systems included in the robot100, as described above. The processor of the electronics system 190 canbe any suitable processing device such as general-purpose processor(GPP), a central processing unit (CPU), an accelerated processing unit(APU), a field programmable gate array (FPGA), an application specificintegrated circuit (ASIC). The processor can be configured to run orexecute a set of instructions or code stored in the memory associatedwith the operation of one or more mechanical and/or electrical systemsincluded in the robot 100. The I/O interface can be, for example, aUniversal Serial Bus (USB) interface; an Institute of Electrical andElectronics Engineers (IEEE) 1394 interface (FireWire); a Thunderbolt™interface; a Serial ATA (SATA) interface or external Serial ATA (eSATA)interface; a network interface card (including one or more Ethernetports and/or a wireless radios such as a wireless fidelity (WiFi®)radio, a Bluetooth® radio, or the like). The I/O interface is configuredto send signals to and/or receive signals from the processor. Similarly,the I/O interface can be configured to receive data from and/or senddata to any suitable electric and/or electronic device included in therobot 100.

In some embodiments, the electronics system 190 can be configured tocontrol any suitable portion of the robot 100 using, for example, afeedback control method such as a PID control scheme and/or the like.For example, the I/O interface can receive signals associated with anoperating condition or the like from one or more electric and/orelectronic components such as one or more motors, pumps, actuators,and/or sensors (as described above) included in the robot 100 (not shownin FIG. 1). Upon receipt, the I/O interface can send data associatedwith the signals to the processor, which in turn, can execute a set ofinstructions associated with controlling a subsequent action of thedrive system 140 and/or the cleaning assembly 165, based at least inpart on the data received from the I/O interface. The processor can thensend data associated with the subsequent action to the I/O interface,which in turn, can send a signal indicative of an instruction to performthe subsequent action to an associated electric and/or electroniccomponent (e.g., a motor, actuator, pump, etc.).

By way of example, in some embodiments, the processor can execute a setof instructions, code, and/or modules associated with at leasttemporarily maintaining the robot 100 within a predetermined distancefrom an object such as a wall. More specifically, in some instances, therobot 100 can be configured to circumscribe an area that is to becleaned by first traveling parallel and/or adjacent to a set of wallsdefining the area. In such instances, the processor can receive signalsfrom one or more sensor (e.g., such as those described above) and basedon data included therein, can define an operational condition of, forexample, the drive system 140 that is operable in maintaining the robot100 and/or an edge or perimeter of the cleaning assembly 165 within apredetermined distance from the wall (e.g., within 10 cm, within 5 cm,within 1 cm, and/or the like), as described in further detail herein.

In some instances, the I/O interface can receive data associated with auser input or the like and can send the data to the processor. The userinput, for example, can be associated with one or more system parametersor operating conditions (e.g., a cleaning fluid formula, a flow rate atwhich the cleaning fluid is to be dispensed, a cleaning head and/orbrush speed, a desired speed of the robot 100, a map, floor plan, floortype, etc. of a surface to be cleaned by the robot 100, an updated mapand/or floor plan of the surface incorporating one or more changes inthe environment, and/or the like. In this manner, the electronics system190 can be configured to control the robot 100 in at least asemi-autonomous manner based at least in part on data associated with anoperating condition of the robot 100, an environmental conditionassociated with the environment with which the robot 100 is operating, auser input, and/or the like.

In some instances, the I/O interface can be configured to transmit dataover a wired and/or wireless network (not shown in FIG. 1) to a remoteelectronic device (e.g., an external device) such as a handheldcontroller, a computer, a laptop, a mobile device, a smartphone, atablet, and/or the like (not shown in FIG. 1). For example, the remoteelectronic device can include at least a processor, a memory, and adisplay and can run, for example, a personal computer application, amobile application, a web page, and/or the like. In this manner, a usercan manipulate the remote electronic device such that data associatedthe robot 100 is graphically represented on the display of the remoteelectronic device, as described in further detail herein. Moreover, theI/O interface can receive from the remote electronic device dataassociated with any of the system parameters and/or operating conditionsdescribed above, and/or any other control data.

FIGS. 2-8 illustrate a device 200 such as, for example, a robotconfigured to clean a surface, according to an embodiment. The device200 (also referred to herein as “cleaning robot” or “robot”) includes atleast a frame 210, a drive system 240, an electronics system 290 (FIGS.5-7), and a cleaning assembly 265. The cleaning robot 200 can be used toclean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface areasuch as, for example, a floor of a home, commercial building, warehouse,etc. The robot 200 can be any suitable shape, size, or configuration andcan include one or more systems, mechanisms, assemblies, orsubassemblies that can perform any suitable function associated with,for example, traveling along a surface, mapping a surface, cleaning asurface, and/or the like.

The frame 210 of the robot 200 can be any suitable shape, size, and/orconfiguration. For example, in some embodiments, the frame 210 caninclude a set of components or the like, which are coupled to form asupport structure configured to support the drive system 240, thecleaning assembly 265, and the electronic system 290. More particularly,in this embodiment, the frame 210 includes a storage portion 211 and asupport portion 220 (see e.g., FIGS. 2-6). As described above withreference to the frame 110, the frame 210 can include any suitablecomponents such as, for example, sheets, tubes, rods, bars, etc. In someembodiments, such components can be formed from a metal or metal alloysuch as aluminum, steel, and/or the like. In other embodiments, suchcomponents can be formed from a thermoplastic and/or polymer such asnylons, polyesters, polycarbonates, polyacrylates, ethylene-vinylacetates, polyurethanes, polystyrenes, polyvinyl chloride (PVC),polyvinyl fluoride, poly(vinyl imidazole), and/or blends and copolymersthereof. As shown in FIGS. 2-5, in this embodiment, the frame 210 caninclude a set of mounts 219 each of which is configured to support anelectronic component included in the electronics system 290 (e.g., eachsupport a laser emitter/sensor 294 included in the electronics system290).

The storage portion 211 of the frame 210 can include a set of componentsconfigured to define a detritus cavity 212 (see e.g., FIG. 4), a vacuumsource cavity 215 (see e.g., FIG. 4), and an electronics system cavity216 (see e.g., FIG. 5). The detritus volume 212 can be any suitableshape, size, or configuration. As shown in FIG. 2, the storage portion211 of the frame 210 defines an opening 213 configured to place thedetritus volume 212 in fluid communication with the cleaning assembly265. Thus, the cleaning assembly 265 can transfer refuse, detritus,fluid, and/or the like from the surface on which the robot 200 is movingto the detritus volume 212, as described in further detail herein.

The vacuum source cavity 215 is configured to receive, store, and/orotherwise house a vacuum source 285. The vacuum source 285 can be anysuitable device and/or mechanism configured to generate a negativepressure differential, which in turn, can result in a suction force. Forexample, the vacuum source 285 can be a vacuum pump (e.g., a pistondriven pump, a rotary vane pump, a rotary screw pump, a diaphragm pump,and/or the like) that can draw a flow of fluid (e.g., a gas such as air)therethrough. Although not shown in FIGS. 2-6, the storage portion 211of the frame 210 can define an opening configured to place the detritusvolume 212 in fluid communication with the vacuum source cavity 215. Assuch, when the vacuum source 285 is in an “on” operational state (e.g.,receiving a flow of electric power), the vacuum source 285 can beconfigured to generate a negative pressure differential, which in turn,can create a suction force within the detritus cavity 212. Moreover,with the detritus cavity 212 being in fluid communication with thecleaning assembly 265 via the opening 213, the suction force within thedetritus cavity 212 can draw refuse, detritus, fluid, dirt, and/or thelike from the cleaning assembly 265 and into the detritus cavity 212, asdescribed in further detail herein. While not shown in FIGS. 2-6, therobot 200 can include any suitable filter or the like disposed withinthe opening configured to place the detritus volume 212 in fluidcommunication with the vacuum source cavity 215. Thus, the filter canlimit an amount of undesirable detritus from being drawn into the vacuumsource 285.

As shown in FIG. 5, the electronics system cavity 216 is configured toreceive the at least a portion of the electronics system 290. Morespecifically, the storage portion 211 of the frame 210 can include awall 217 on which at least a portion of the electronics system 290 ismounted. In some embodiments, the wall 217 can be configured tophysically and fluidically isolate the detritus cavity 212 and thevacuum source cavity 215 from the electronics system cavity 216. In thismanner, the electronic components are not exposed to a volume ofdetritus transferred into the detritus cavity 212. In some embodiments,the electronics system cavity 216 can be sufficiently large to house atleast a portion of the electronics system 290 such as, for example, aprinted circuit board (PCB), processor, memory, radios, powerdistribution components, a battery 291, and/or the like.

Although not shown in FIGS. 2-8, in some embodiments the storage portion211 can define any other suitable cavity, volume, reservoir, and/or thelike. For example, in some embodiments, a storage portion can include adry detritus cavity and a wet detritus cavity. In such embodiments, thedry detritus cavity can be configured to receive substantially drydebris such as refuse, dirt, dust, etc., which can be collected, forexample, during a vacuuming process or the like. Similarly, the wetdetritus cavity can be configured to receive a substantially wetdetritus, which can result, for example, from using a cleaning fluid andone or more brushes to scrub a surface and subsequently drawing the usedcleaning fluid into the wet detritus cavity.

In some embodiments, a storage portion can define a cleaning fluidcavity, which can include one or more volumes, which selectively can beplaced in fluid communication to allow one or more solid, powdered,and/or fluid products to be mixed to form a cleaning fluid. By way ofexample, a storage portion of a frame can include a cleaning fluidcavity with a cleaning product volume and a diluent volume. In someinstances, a robot and more particularly, an electronics system includedtherein can send a signal to one or more pumps or the like that cantransfer at least a portion of a cleaning product disposed in thecleaning product volume into the diluent volume (or vice versa) to mixthe cleaning product with a diluent such as water. In other embodiments,such a cleaning fluid cavity can define a mixing volume within which thecleaning product and the diluent are mixed.

As shown in FIGS. 2 and 3, the storage portion 211 of the frame 210includes a first lid 214 configured to selectively cover the detrituscavity and the vacuum source cavity 215, and a second lid 218 configuredto selectively cover the electronics system cavity 216. Said anotherway, the first lid 214 can be moved from a first position, in which thefirst lid 214 covers the detritus cavity 212 and the vacuum sourcecavity 215, to a second position, in which a user can access thedetritus cavity 212 and/or the vacuum source cavity 215. Similarly, thesecond lid 218 can be moved from a first position, in which the secondlid 218 covers the electronics system cavity 216, to a second position,in which the user can access at least a portion of the electronicssystem 290.

As described above, the frame 210 also includes a support portion 220(see e.g., FIGS. 5-7). The support portion 220 can be any suitableshape, size, and/or configuration. For example, the support portion 220can include any suitable component, part, mechanism, linkage, and/or thelike configured to support, for example, the storage portion 211 of theframe 210, the drive system 240, and/or the cleaning assembly 265. Inthis embodiment, the support portion 220 includes a top plate 221, abottom plate 223, a cleaning assembly mount 227, a rear skirt mount 233,and at least one drive mechanism mount, as shown in FIGS. 5 and 6. Moreparticularly, the support portion 220 includes a first drive mechanismmount 225A and a second drive mechanism mount 225B coupled between thetop plate 221 and the bottom plate 223. The first drive mechanism mount225A is configured to couple to and/or to support a first drivemechanism 241A included in the drive system 240 and the second drivemechanism mount 225B is configured to couple to and/or to support asecond drive mechanism 241B of the drive system 240, as described infurther detail herein.

The top plate 221 can be coupled to the storage portion 211 of the frame210 to couple the support portion 220 thereto. The bottom plate 223 isopposite the top plate 221 and is configured to support the drivemechanism mounts 225A and 225B. The rear skirt mount 233 is coupled tothe bottom plate 222 and includes an end portion 234 coupled to a rearskirt 235 (see e.g., FIG. 5). In some embodiments, the rear skirt 235can be configured to engage a surface along which the robot 200 travelsto reduce an amount of debris not entrained in the cleaning assembly265, as described in further detail herein. The cleaning assembly mount227 can be any suitable mount, linkage, assembly, device, etc.configured to movably couple the cleaning assembly 265 to the supportportion 220. For example, as shown in FIGS. 6 and 7, the cleaningassembly mount 227 includes a coupling linkage 228, a pivot member 229,and an actuating arm 230. The coupling linkage 228 is rotatably coupledto the pivot member 229 at a first end and is configured to couple to amounting portion 279 of the cleaning assembly 265 at a second end (seee.g., FIGS. 4 and 7). Similarly, the actuating arm 230 is coupled to thetop plate 221 at a first end and is coupled to the mounting portion 279of the cleaning assembly 265 at a second end. Although not shown inFIGS. 2-8, the robot 200 can include an actuator or the like configuredto move the actuating arm 230 relative to the support portion 220 tosimilarly move the cleaning assembly 265 relative to the support portion220, as described in further detail herein. As such, the cleaningassembly 265 can be coupled to the support portion 220 of the frame 210and can be moved relative support portion 220 to place the cleaningassembly 265 in a desired portion relative to the surface along whichthe robot 200 will travel. Moreover, in some instances, the cleaningassembly 265 can be moved relative to the support portion 220 tomodulate an amount of pressure exerted by a cleaning member and/orcleaning head on the surface (e.g., based on floor type, type and/oramount of detritus, and/or the like).

As described above, the drive system 240 of the robot 200 is coupled toand/or is otherwise supported by the support portion 220 of the frame210. The drive system 240 can any suitable system, mechanism, machine,assembly, etc. configured to move the robot 200 along a surface. Forexample, in this embodiment, the drive system 240 includes the firstdrive mechanism 241A and the second drive mechanism 241B (see e.g.,FIGS. 6 and 7). As described above, the first drive mechanism 241A iscoupled to the first drive mechanism mount 225A of the support portion220 of the frame 210 and the second drive mechanism 241B is coupled tothe second drive mechanism mount 225B of the support portion 220.

The first drive mechanism 241A includes a motor 242A, a first wheel248A, and a second wheel 250A. Similarly, the second drive mechanism241B includes a motor 242B, a first wheel 248B, and a second wheel 250B.In some embodiments, the first drive mechanism 241A and the second drivemechanism 241B can be substantially similar in form and function. Thus,the following discussion of the first drive mechanism 241A applies tothe second drive mechanism 241B and as such, the second drive mechanism241B is not described in further detail herein.

As shown in FIG. 7, the second wheel 250A is coupled to an output (notshown) of the motor 242A. The second wheel 250 can be any suitable sizeor configuration. In some embodiments, the second wheel 250A can bedirectly coupled to the output of the motor 242A. In other embodiments,the second wheel 250A can be indirectly coupled to the output of themotor 242, for example, via a belt drive, chain drive, gear drive,and/or any other suitable intervening structure. In some embodiments,the motor 242A and/or the second wheel 250A can include an encoder,tachometer, accelerometer, and/or any other suitable sensor or the likeconfigured to determine, for example, a rotational position, velocity,and/or acceleration of the second wheel 250A and/or the output of themotor 242A. As described in further detail herein, such an encoderand/or sensor can be in communication with the electronics system 290and can send signals to and/or receive signals from the electronicssystem 290 associated with the operation of the first drive mechanism241A. As described above, the second drive mechanism 241B can bearranged in a substantially similar manner as the first drive mechanism241A and thus, can send signals to and/or receive signals from theelectronics system 290 associated with the operation of the second drivemechanism 241B.

The first wheel 248A included in the first drive mechanism 241A can beany suitable size and/or configuration. The first wheel 248A isrotatably coupled to the support portion 220 of the frame 210 and isconfigured to rotate about an axis A₁, as shown in FIG. 8. In thisembodiment, the first wheel 248A can be, for example, an omni-wheel, amecanum wheel, and/or the like that defines a circumference and thatincludes a set of rollers 249 rotatably disposed along thecircumference. More specifically, in this embodiment, the first wheel248 includes two adjacent sets of rollers disposed along thecircumference of the wheel such that the rollers 249 included in one setof rollers are offset along the circumference from the rollers 249included in the other set of rollers. The rollers 249 can be relativelysmall rollers, which are each configured to rotate about an axisassociated with that roller 249 (e.g., the roller 249 is configured torotate about its associated axis A₂ as shown in FIG. 8). The axis ofeach roller 249 (e.g., as shown with the axis A₂) can be, for example,perpendicular to the axis A₁ about which the wheel 248 rotates. In thismanner, as the wheel 248 is rotated about its axis A₁, each roller 249disposed along the circumference of the wheel 248 can be configured torotate about its associated axis (e.g., A₂), which in turn, can advancethe robot 200 in any suitable direction. While shown and described asbeing perpendicular, in other embodiments, an axis of rotation for eachroller 449 can be disposed at any suitable angle relative to the axisA₁. For example, in some embodiments, the axis of rotation for eachroller 449 can be disposed at about a 45 degree angle relative to theaxis A₁.

As described above, the first drive mechanism 241A and the second drivemechanism 241B can receive signals from and/or can send signals to theelectronics system 290 associated with operation of the drive system240. In some instances, the electronics system 290 can sendsubstantially equivalent signals and/or a substantially equal amount ofelectric power to the motor 242A of the first drive mechanism 241A andthe motor 242B of the second drive mechanism 241B and, in response, themotors 242A and 242B can rotate the second wheels 250A and 250B,respectively, with substantially the same velocity (e.g., rotationalspeed and direction). As such, the drive system 240 can move the robot200 along a surface (e.g., a floor to be cleaned) in a substantiallystraight direction (e.g., in a direction tangential to the rotationalmotion relative to a plane associated with the surface). That is to say,when the first drive mechanism 241A and the second drive mechanism 241Breceive substantially the same input from the electronics system 290,the motor 242A of the first drive mechanism 241A and the motor 242B ofthe second drive mechanism 241B rotate the second wheels 250A and 250B,respectively, with the substantially the same velocity, which in turn,moves the robot 200 forward.

In some instances, the first drive mechanism 241A can receive an inputfrom the electronics system 290 different from an input received by thesecond drive mechanism 241B, which in some instances, can operable inchanging a translational velocity and/or direction of the robot 200relative to the surface. In some instances, the first drive mechanism241A can receive an input from the electronics system 290 such that themotor 242A of the first drive mechanism 241A rotates the second wheel250A in a first rotational direction, while the second drive mechanism241B receives an input from the electronics system 290 such that themotor 242B of the second drive mechanism 241B rotates the second wheel250B in a second rotational direction, opposite the first rotationaldirection. In such instances, the opposite rotational direction betweenthe second wheels 250A and 250B can result in a reduced turning radiuswhen compared to, for example, the second wheel 250A being held in afixed position while the second wheel 250B was rotated (or vice versa).In some instances, such an arrangement can be, for example, a“zero-degree turn” arrangement or the like. As such, the arrangement ofthe robot 200 can be such that the cleaning assembly 265 can be placedinto corners and/or other tight spaces (e.g., within five centimeters ofa wall or corner), which might otherwise result in the robot 200becoming stuck and/or the like, as described in further detail herein.

Referring back to FIGS. 2-4, the cleaning assembly 265 included in therobot 200 can be any suitable shape, size, and/or configuration. Asdescribed above, the cleaning assembly 265 is coupled to and/or isotherwise supported by the support portion 220 of the frame 210. Moreparticularly, in some embodiments, the cleaning assembly 265 includesthe mounting portion 279, which is coupled to the cleaning assemblymount 227 of the support portion 220 of the frame 210. As describedabove, in some embodiments, the arrangement of the cleaning assemblymount 227 included in the support portion 220 of the frame 210 and themounting portion 279 of the cleaning assembly 265 can be such that thecleaning assembly 265 can be moved relative to the frame 210 (e.g., viaan actuator and/or the actuating arm 230 of the support portion 220).For example, in some embodiments, the cleaning assembly 265 can be movedcloser to or away from the frame 210, which in turn, can move thecleaning assembly 265 away from or closer to, respectively, a surfacealong which the robot 200 moves.

Although not specifically shown in FIGS. 2-8, the cleaning assembly 265can include any suitable cleaning mechanism, brush, scrubber, and/or thelike configured to engage the surface on which the robot 200 travels.For example, in some embodiments, the cleaning assembly 265 can includea housing or the like that can define a vacuum chamber, and can includeone or more cylindrical brushes rotatably coupled to the housing and atleast partially disposed in the vacuum chamber. The one or more brushescan be operably coupled to a motor configured to rotate the one or morebrushes relative to the housing. The cleaning assembly 265 can alsoinclude a pump or the like configured to generate a negative pressurewithin the vacuum chamber. In some embodiments, the pump can be coupledto the housing and in fluid communication with the vacuum chamber. Insuch embodiments, the pump can be configured to transfer a flow of acleaning fluid or the like from a storage volume (e.g., a cleaning fluidcavity, as described above) to the cleaning assembly 265 and, in turn,the cleaning assembly 265 can dispense, disperse, spray, etc. thecleaning fluid onto the surface being cleaned by the cleaning assembly265. In other embodiments, the pump can be, for example, the vacuumsource 285 disposed in the vacuum cavity 215 of the frame 210 and influid communication with the cleaning assembly 265 via the opening 213,as described above. In still other embodiments, the robot 200 caninclude a pump configured to transfer a cleaning fluid to the cleaningassembly 265 and the vacuum source 285 configured to transfer detritusfrom the cleaning assembly 265 and into the detritus cavity 212. In someembodiments, the cleaning assembly 265 can be substantially similar toor the same as any of the cleaning assemblies described herein.

At least a portion of the cleaning assembly 265 is in communication withthe electronics system 290 and is configured to send signals to and/orreceive signals from the electronics system 290 associated with theoperation of the cleaning assembly 265. For example, in some instances,the electronics system 290 can send a signal to the cleaning assembly265 and/or an actuator that can be operable in moving the cleaningassembly 265 relative to the frame 210. In some instances, theelectronics system 290 can send a signal operable in transitioning apump (e.g., the vacuum source 285 and/or the like) between an “off”operational state and an “on” operational state and/or to change a flowrate through the pump. Moreover, in some instances, the electronicssystem 290 can be configured to control a flow rate through the pumpand/or the vacuum source 285 based at least in part on data receivedfrom one or more sensors (e.g., based on a velocity of the robot). Inother instances, the electronics system 290 can send a signal operablein transitioning a motor of the cleaning assembly 265 between an “off”operational state and an “on” operational state, which in turn, can beoperable in stopping a rotation of a set of brushes or starting arotation of the set of brushes, respectively. Thus, the cleaningassembly 265 can be configured to engage the surface on which the robot200 travels to clean the surface, as described in further detail herein.

As described above, the electronics system 290 included in the robot 200can control at least a portion of the drive system 240 and/or thecleaning assembly 265. As described above, the electronic system 290 caninclude at least a memory, a processor, and an input/output (I/O)interface. Moreover, the electronics system 290 can include any suitableradio, power distribution component, the battery 291, and/or the like.In some embodiments, the battery 291 can be a high energy densitybattery such as a LiFePO₄ battery. In some embodiments, the battery 291a 51.2 Volt (V), 60 Ampere/hour (A/h) LF-G48V-60 battery made byBatterySpace, based in California, USA. The memory, the processor,and/or the I/O interface can be substantially similar to the respectivecomponent included in the electronics system 190 described above withreference to FIG. 1. Thus, the memory, the processor, and/or the I/Ointerface are not described in further detail herein.

The electronics system 290 can be configured to control any suitableportion of the robot 200 using, for example, a feedback control methodsuch as a PID control scheme and/or the like. For example, theelectronics system 290 can include and/or can be in communication withone or more electric and/or electronic components such as any number ofcameras, transceivers (e.g., radio beacons, light transceivers, and/orthe like), encoders, odometers, tachometers, accelerometers, inertialmeasurement units (IMUs), proximity sensors, relay logics, switches,and/or the like (collectively referred to herein as “sensors”). In someembodiments, the electronics system 290 can include and/or can be incommunication with any of the sensors described above. As such, thesensors can sense, detect, and/or otherwise determine one or moreoperating conditions associated with the robot 200 and/or one or moreenvironmental conditions associated with the environment within whichthe robot 200 is disposed, as described in detail above.

Expanding further, in this embodiment, the electronics system 290includes and/or is in communication with two laser transceivers 294coupled to the frame 210 via the mounts 219. Although not shown in FIGS.2-8, the electronics system 290 can also include and/or can be incommunication with one or more encoders, odometers, accelerometers,and/or IMUs included in the drive system 240. The laser transceivers294, for example, can be a light-radar (LIDAR) and can be configured toemit a laser beam (e.g., visible light, infrared light, and/or the like)and configured to sense and/or otherwise determine an amount and/ordelay of reflection, refraction, dissipation, and/or the like associatedwith the emitted laser beam. As such, the laser transceiver 294 can beconfigured to sense a relative position of objects within an environmentand/or the like. While not shown in FIGS. 2-8, the robot 200 can includeany other suitable device configured to determine one or more conditionsassociated with the operation of the robot 200 such as, for example, oneor more cameras, video recorders, sound wave and/or radio wavetransceivers, proximity sensors, contact and/or pressure sensors, and/orthe like. Moreover, such devices and/or sensors can be configured tosend signals to and/or receive signals from the I/O interface of theelectronics system 290.

In some instances, the I/O interface can send data associated with oneor more signals received from the laser transceivers 294 (or any othersuitable sensor) to the processor. In turn, the processor can execute aset of instructions, code, modules, etc. associated with controlling oneor more subsequent action of the drive system 240 and/or the cleaningassembly 265, based at least in part on the data received from the I/Ointerface. The processor can then send data associated with the one ormore subsequent action to the I/O interface, which in turn, can send asignal indicative of an instruction to perform the one or moresubsequent action to an associated electric and/or electronic component(e.g., an actuator such as the actuator coupled between the frame 210and the cleaning assembly 265 (not shown in FIGS. 2-8), a pump such asthe vacuum source 285, a motor such as the motors 242A and 242B of thedrive system 240).

For example, in some embodiments, the laser transceiver 294 can senseproximity between a portion of the robot 200 and an object, and can sendsignals associated therewith to the I/O interface. Based at least inpart on a predetermined criteria and/or threshold associated with theproximity data (e.g., stored in the memory or the like), the processorcan perform and/or execute one or more processes and/or modules operablein determining a subsequent action of at least a portion of the robot200. For example, in some instances, the processor can perform and/orexecute one or more processes operable in at least temporarily stoppingthe robot 200 (e.g., withholding electric power from the drive system240 and/or other suitable means of preventing movement of the robot 200along the surface). As a result, the robot 200 can be configured to atleast pause and/or otherwise stop when, for example, the processordetermines the proximity between the robot 200 and an object satisfiesthe criteria (e.g., is within a predetermined proximity). In someinstances, the robot 200 can be paused and/or stopped for a sufficienttime to determine if the object is moving relative to the stationaryrobot 200. In some instances, if the object is stationary, the robot 200and/or one or more sensors can collect data associated with the objectand/or the surface and can, for example, redefine or re-map a cleaningpath and/or the like.

While the I/O interface is described above as receiving one or moresignals and/or inputs from the laser transceivers 294 and/or any othersuitable sensor(s), etc., in some instances, the I/O interface canreceive data associated with a user input or the like and can send thedata to the processor, which in response, can define one or moresubsequent action of at least a portion of the robot 200. In someinstances, the user input can be associated with one or more systemparameters or operating conditions (e.g., a cleaning fluid formula; aflow rate at which the cleaning fluid is to be dispensed; a cleaninghead and/or brush speed; a desired speed of the robot 200; a map, floorplan, floor type, etc. of a surface to be cleaned by the robot 200; anupdated map and/or floor plan of the surface incorporating one or morechanges in the environment; and/or the like). For example, in someinstances, the user can enter, select, and/or otherwise input datapresented on a user interface (e.g., a display such as a touchscreendisplay or the like). In other instances, the I/O interface can receivea signal associated with a user input at a remote control device such asa mobile device, smartphone, tablet, laptop, PC, and/or the like. Forexample, the electronics system 290 and/or the I/O interface can includea network interface card or the like that can have a wireless radio suchas a wireless fidelity (WiFi®) radio, a Bluetooth radio, and/or anyother suitable wireless radio that can be in communication with theremote control device via one or more networks. Thus, the electronicssystem 290 can be configured to control at least a portion of the robot200 in response to signals received from the laser transceivers 294and/or any other suitable sensor, as well as any suitable user input viaa user interface and/or via a remote electronic device.

In some instances, the I/O interface can be configured to receivesignals (e.g., from the laser transceivers 294 and/or from a user inputat a user interface) associated with an original mapping of the surfaceto be cleaned and/or an initializing of the robot 200 relative to thesurface. For example, in some instances, prior to a first cleaning of asurface, a user can manually guide the robot 200 along the surface todefine a map of the surface. In such instances, the drive system 240 canbe configured to provide power to the motors 242A and 242B to rotate thesecond wheels 250A and 250B to assist the user in directing the robot200. In other instances, the drive system 240 need not provide power tothe motors 242A and 242 to rotate the second wheels 250A and 250B. Asthe user directs (e.g., pushes and/or steers) the robot 200 along thesurface, the robot 200 can be configured to sense, determine, calculate,define, and/or otherwise receive information associated with the area tobe cleaned. For example, as the user is directing (e.g., pushing and/orsteering) the robot 200 along the surface, the laser transceivers 294can emit a laser beam and can receive at least a portion of thereflected laser beam to sense a proximity of objects along and/or nearthe path of the robot 200. Similarly, an encoder, odometer,accelerometer, and/or other sensor included in and/or associated withthe drive system 240 can be configured to sense, determine, calculate,define, and/or otherwise receive information associated with an outputof the motors 242A and/or 242B, a rotation of the second wheels 250Aand/or 250B, and/or the like. In some embodiments, any other suitablesensor such as a GPS sensor, a proximity sensor, sound and/or radio wavesensor, camera, etc. can also sense and/or determine informationassociated with the robot 200 as the user directs the robot 200 alongthe surface to be cleaned.

As such, the I/O interface can receive data from the laser transceivers294 and/or other sensors and can send data associated therewith to theprocessor. In response, the processor can define a map, floor plan,layout, etc. associated with the surface to be cleaned. In someinstances, based on the mapping and/or initializing of the robot 200,the electronic system 290 (e.g., the processor included therein) candefine and/or determine a desired plan for cleaning the surface. Forexample, in some instance, the processor can execute a set ofinstructions or code associated with decomposing the map, layout, and/orgraph of the surface into sectors, paths, subpaths, etc. along which therobot 200 can travel based on efficiency, resource usage, desired areasof attention (e.g., areas along the surface that are dirtier thanothers), and/or the like. Once the cleaning plan is defined, the robot200 can begin cleaning the surface according to the cleaning plan. Inthis manner, the electronics system 290 can be configured to control therobot 200 in at least a semi-autonomous manner based at least in part ondata associated with an operating condition of the robot 200, anenvironmental condition associated with the environment with which therobot 200 is operating, a user input, and/or the like.

In some instances, the processor can execute a set of instructions,code, and/or modules associated with at least temporarily maintainingthe robot 200 within a predetermined distance from an object such as awall. More specifically, in some instances, the robot 200 can beconfigured to circumscribe an area that is to be cleaned by firsttraveling substantially parallel and/or adjacent to a set of wallsdefining the area. In such instances, the processor can receive signalsfrom one or more sensor (e.g., such as those described above) and basedon data included therein, can define an operational condition of atleast the drive system 240. For example, in some instances, the lasertransceivers 294 can emit a laser beam and based on a quantity and/orquality of the laser beam reflected and/or refracted back to the lasertransceiver 294, which can then sense, define, assign, and/or otherwisedetermine a value or the like representing a proximity of at least aportion of the robot 200 to the set of walls. As such, the lasertransceiver 294 can send a signal associated with the value to theprocessor (e.g., via the I/O interface). Upon receipt, the processor canexecute a set of instructions, code, and/or modules (e.g., stored inmemory) to define, for example, a current and/or immediately pastposition of at least a portion of the robot 200 relative to the set ofwalls.

In a similar manner, the processor, via the I/O interface, can receive aset of signals associated with an operating condition of, for example,the drive system 240 from any suitable sensor, encoder, odometer,accelerometer, and/or the like. For example, the set of signals can beassociated with an output of the motors 242A or 242B and/or a rotationalcharacteristic of the second wheels 250A and 250B. In some embodiments,the set of signals can include data associated with an amount ofelectric power used by the motors 242A and 242B, a rotational speed,rotational position, rotational acceleration, etc. of the output of themotors 242A and 242B and/or the second wheels 250A and 250B, and/or thelike. Similarly, the processor can receive data associated with and/orfrom any other suitable portion of the robot 200 within a very shortamount of time (e.g., substantially concurrently, or within a fewprocessor clock cycles, and/or the like). Thus, the processor canexecute a set of instructions, code, and/or modules to determine acurrent (or immediately past) operational state of the robot 200, whichcan include, for example, a velocity and/or acceleration of the robot200, a position of the robot 200 relative to a calculated and/or desiredposition, an operational state of the drive system 240 and/or thecleaning assembly 265, and/or the like. Moreover, the processor canevaluate the operational state of the robot 200 relative to apredetermined and/or desired operational state of the robot 200according to, for example, a predetermined and/or calculated cleaningplan and based on data associated with the evaluation, can define a newoperational state (e.g., an operational state immediately following thecurrent operational state) for any suitable portion of the robot 200.

By way of example, in some instances, the processor can receive signalsfrom any suitable sensor, odometer, accelerometer, encoder, etc. and canuse data included in the signals to determine, for example, a velocityof the robot 200. In some embodiments, the processor can be configuredto execute a set of instructions, code, and/or modules based at least inpart on determining the velocity of the robot 200. For example, in someembodiments, the processor can be configured to control the drive system240 based on determining the velocity of the robot 200 to maintain thevelocity of the robot 200 within a predetermined range according to, forexample, a phase of a cleaning operation. For example, in someembodiments, the robot 200 can be configured to move with a firstvelocity during, for example, an initializing and/or mapping a secondvelocity during, for example, a wall following phase, and a thirdvelocity during, for example, a turning phase. In some instances, thefirst velocity, the second velocity, and the third velocity can each bedifferent. Therefore, if the processor determines, based on datareceived from one or more sensors and/or based on a predeterminedcleaning plan, that the robot 200 is beginning, for example, a wallfollowing phase of the cleaning plan, the processor can determine acurrent velocity of the robot 200 and can define an updated operationalcondition of the drive system 240 such that the drive system 240 movesthe robot 200 substantially with the second velocity.

In some embodiments, the processor can be configured to control anoperational condition of at least a portion of the cleaning assembly 265based at least in part of the velocity of the robot 200. Specifically,in some embodiments, the processor can be configured to send a signal,for example, to the motor (not shown) to increase or decrease arotational speed of the brushes when a velocity of the robot 200decreases or increases, respectively. Similarly, the processor can beconfigured to send a signal to a pump or the like configured to transfera flow of a cleaning fluid to the cleaning assembly 265. Specifically,in some instances, the processor can send a signal to the pump toincrease or decrease a flow rate therethrough when the velocity of therobot 200 decreases or increases, respectively. In a similar manner, theprocessor can send a signal to the vacuum source 285 to control a flowrate therethrough based on a velocity of the robot 200. In someinstances, by basing, for example, a speed of rotation of the brushes, aflow rate of a cleaning fluid, and/or a flow rate through the vacuumsource, an amount of electric power to operate the robot 200 can bereduced, which in turn can increase an amount of time the battery 210can provide electric power.

In some instances, the processor can evaluate a distance between therobot 200 and, for example, the wall relative to the predetermineddistance from the wall (described above). In instances in which theprocessor determines at least a portion of the robot 200 is beyond thepredetermined distance from the wall (e.g., more than 10 cm, more than 5cm, more than 1 cm, and/or the like), the processor can define asubsequent action to be performed by the drive system 240 to direct therobot 200 toward the wall. More specifically, the electronics system 290can send a signal to the motor 242A of the first drive mechanism 241Aand a signal to the motor 242B of the second drive mechanism 241B, whichcan result in, for example, the motor 242A of the first drive mechanism241A rotating the second wheel 250A at a first rotational speed.Similarly, the signal sent to the motor 242B of the second drivemechanism 241B can result in the motor 242B rotating the second wheel250B at a second rotational speed different that the first rotationalspeed. Thus, if the wall is adjacent to a right side of the robot 200,the first rotational speed can be greater than the second rotationalspeed, which in turn, steers the robot 240 toward the wall. In thismanner, the electronic system 290 can perform a similar process anynumber of times to actively control the operational state of the robot200. Similarly, the processor can be configured to execute a set ofinstructions or code associated with determining a current operatingcondition of any suitable portion of the robot 200 and, in response, canexecute a set of instructions or code to define an updated operatingcondition of that portion of the robot 200 or of a different portion ofthe robot 200 based at least in part on a predetermined cleaning plan orthe like.

In some instances, once the robot 200 has cleaned and/or traveled alonga perimeter of the surface being cleaned, the electronic device 290 canbe configured to update the condition associated with maintaining therobot 200 within a predetermined distance from the wall. For example, insome instances, the electronic device 290 (e.g., the processor) canupdate the predetermined distance based on, for example, a width of therobot 200 and/or the cleaning assembly 265. That is to say, theprocessor can update the predetermined distance from the wall such thatthe robot 200 travels at a distance from the wall that is equal to aboutthe width of the cleaning assembly 265. Said yet another way, theprocessor can update the predetermined distance from the wall such thatthe robot 200 travels in concentric paths. In some instances, suchconcentric paths can partially overlap to ensure an area of the surfaceis not missed. In other instances, once the robot 200 has cleaned and/ortraveled along the perimeter of the surface, the processor can execute aset of instructions and/or code associated with a different phase of thecleaning plan, for example, not based on proximity of the robot 200 tothe wall. In other words, after completing the processes and/or the likeassociated with a first phase (e.g., a wall following phase) of acleaning plan, the processor can execute a set of processes associatedwith a second phase of the cleaning plan that can be independent of thewall following phase.

While the electronic system 290 is described above as performing one ormore processes, for example, to maintain the robot 200 within apredetermined distance from a wall, in other embodiments, the electronicsystem 290 can be configured to preform one or more processes, forexample, when the robot 200 encounters and/or comes into contact with anobject. For example, in some instances, an object can be in or on a pathalong which the robot 200 is traveling and the drive system 240 can beconfigured to move the robot 200 along the path, for example, until thecleaning assembly 265 and/or any other suitable portion of the robot 200is placed in contact with and/or brought within a predetermined distanceof the object. As such, the laser transceivers 294 and/or any othersuitable sensor (as described above) can sense the contact with and/orthe proximity to the object and can send a signal associated therewithto the processor.

In response, the processor can perform and/or execute a set ofinstructions associated with, for example, stopping a rotational outputof the motors 242A and/or 242B of the drive system 240. As such, therobot 200 can be configured to stop when a portion of the robot 200contacts the object and/or comes within a predetermined proximity of theobject. In some instances, the robot 200 can be configured to pause fora predetermined time and at the end of the predetermined time, theprocessor can receive a signal from the laser transceiver 294 and/orother suitable sensor associated with a proximity of the object at theend of the predetermined time. If, for example, the object has movedfrom the path and is no longer an obstacle, the processor can beconfigured to execute a set of instructions that resume the operation ofthe robot 200 according to the defined cleaning path. If, however, theobject has not moved, the processor can determine the object isstationary and in response, the processor can execute a set ofinstructions or code associated with navigating around the object. Forexample, the processor can execute a set of instructions, code, and/ormodules associated with updating or remapping the surface to define anupdated cleaning path and/or plan. The processor can then execute a setof instructions, code, and/or modules to begin an updated cleaningoperation based on the updated cleaning path and/or plan. For example,the processor can send a signal to the motors 242A and/or 242B that cancause the motors 242A and/or 242B to rotate the second wheels 250Aand/or 250B, respectively, in a direction such that the cleaningassembly 265 and/or any other portion of the robot 200 is moved awayfrom the object. Once beyond a predetermined distance from the object,the processor can execute a set of instructions, code, and/or modulesthat can cause the motors 242A and/or 242B to move the robot 200according to the updated cleaning path and/or plan. Thus, the robot 200can be configured to adjust and/or alter the path along which the robot200 is traveling in response to contacting and/or coming within apredetermined distance of an object.

Although not shown in FIGS. 2-8, in some embodiments, the robot 200 caninclude one or more cameras such as those described herein can beconfigured to capture an image and/or a video of the object and can senddata associated with the image and/or video to the processor. Uponreceipt, the processor can execute a set of instructions, code, and/ormodules associated with analyzing the image and/or the video todetermine and/or recognize the object. For example, the processor can beconfigured to determine if the object is stationary, movable, delicate,and/or the like, and based on the determination, can define one or moresubsequent actions for a portion of the robot 200. For example, in someinstances, the processor can determine the object is a ball or the likethat is movable and that is too large to become entrained in thecleaning assembly 265. Based on this determination, the processor cansend a signal to the motors 242A and/or 242B to continue moving therobot 200 along the cleaning path. Conversely, if the processordetermines the object is not movable such as a newly installed structureor the like not included in the original mapping of the surface, theprocessor can send a signal to the motors 242A and 242B to navigatearound the object and once beyond a predetermined distance, to return tothe cleaning path (as described above). Thus, the robot 200 can beadaptive and can be configured to update the cleaning plan based on achange of the surface to be cleaned and/or the environment in which therobot 200 is disposed. In some embodiments, the updated cleaning plancan be based on a remapping of the surface and a defining of an updatedpath along which the robot 200 will travel. The updated path can be, forexample, a path most likely to avoid the object and/or any other new orunmapped object or change.

After executing a cleaning plan or the like, the electronics system 290can be configured to evaluate the area of the surface that was cleanedwith a desired area of the surface to be cleaned (e.g., defined by thecleaning plan and/or the updated cleaning plan). If the electronicssystem 290 determines a portion of the surface was not cleaned, therobot 200 can be configured to move to and clean that portion of thesurface. Similarly, the electronics system 290 (e.g., the processor) canbe configured to evaluate and/or record water and/or cleaning fluid notcollected during the cleaning operation (e.g., not vacuumed). If waterand/or cleaning is found on the surface, the robot 200 can be configuredto move to and clean (e.g., vacuum, suction, squeegee, etc.) the waterand/or cleaning fluid. While described above as being performed afterexecuting the cleaning plan, in other embodiments, the electronicssystem 290 can control the robot 200 to clean missed surfaces and/orremove excess water from the surface during the cleaning operation. Insuch instances, the electronics system 290 can be configured to redefinethe cleaning path and/or otherwise remap the surface in response todeviating from the cleaning plan.

As described above, in some instances, the I/O interface can beconfigured to transmit data over a wired and/or wireless network to aremote electronic device (e.g., an electronic device external to therobot 200) such as a handheld controller, a mobile device, a smartphone,a tablet, a laptop, a PC, and/or the like (not shown in FIGS. 2-8). Forexample, the remote electronic device can include at least a processor,a memory, and a display and can run, for example, a personal computerapplication, a mobile application, a web page, and/or the like. In thismanner, a user can manipulate the remote electronic device such thatdata associated with the robot 200 is graphically represented on thedisplay of the remote electronic device. More specifically, in someinstances, the user can manipulate the remote electronic device to open,for example, a personal computer application or a mobile applicationassociated with the robot 200. In some instances, the application can beconfigured to send signals to and/or receive signals from theelectronics system 290 via a wireless network and the Internet. In someembodiments, the application can be a web browser or the like.

In some instances, the data can be associated with a status of the robot200 and/or a report on the cleaning plan such as an amount of life inthe battery 291, a fill volume of a cleaning fluid, a fill volume of thefluid recovery volume, a fill volume of, for example, the detritusvolume 212, a velocity of the robot 200, a percentage of completion ofthe cleaning plan, a relative position of the robot 200, and/or thelike. In some instances, the remote electronic device can be configuredto present the data, for example, in a graph, a chart, a report, aninteractive image, a video, a live stream, and/or any other suitablemanner. In some instances, the electronics system 290 can send a signalto the remote electronic device associated with an error or the like,which can be presented on the display of the remote electronic device inthe form of an alert or the like. As such, a user can monitor theprogress of the robot 200 remotely via the remote electronic devicesubstantially in real time and based on the monitoring, the user can,for example, manipulate the remote electronic device to remotely controlthe robot 200.

For example, if the robot 200 becomes stuck, the user via the userinterface on the remote electronic device can control the robot 200 toremotely move the robot 200 to an unstuck position. In some instances,data associated with the remote control of the robot 200 received by theelectronics system 290 can have a priority and/or other indication suchthat the processor performs one or more processes based on the datarather than the cleaning plan. That is to say, the user can remotelycontrol the robot 200, which in turn, can override the cleaning plan.Once the processor executes and/or preforms the processes associatedwith the remote control, the processor can execute a set of processesassociated with, for example, remapping and/or redefining the cleaningplan. In some embodiments, the remote electronic device can send asignal to the electronics system 290 associated with an instruction topower down and/or transition to an “off” operational state (e.g., theremote electronic device can be, for example, a remote kill device).Moreover, while the robot 200 is described above as being manuallyinitialized by the user directing robot 200 around the surface, in someembodiments, a remote electronic device can include data representing amap or layout of a surface to be cleaned, which can be graphicallyrepresented on the display of the remote electronic device to allow auser to virtually initialize the robot 200.

Referring now to FIGS. 9-17, at least a portion of a device 300 such asa semi-automated robot is illustrated according to an embodiment. Theportion of the device 300 includes at least a frame 310, a drive system340, and a cleaning assembly 365. The device 300 can be included in, forexample, a cleaning robot used to clean (e.g., vacuum, scrub, disinfect,etc.) any suitable surface area such as, for example, a floor of a home,commercial building, warehouse, etc., as described in detail above. Forexample, the device 300 can be included in the robot 200 described abovewith reference to FIGS. 2-8. More specifically, the portion of the robot200 can be adapted to receive the device 300 such that the supportportion of the frame 220, the drive system 240, and the cleaningassembly 265 is replaced by the frame 310, the drive system 340, and thecleaning assembly 365, respectively. Thus, other portions of the device300 are not described in further detail herein.

The frame 310 of the device 300 (also referred to herein as “robot”) canbe any suitable shape, size, and/or configuration. For example, asdescribed above with reference to the robot 200, the frame 310 caninclude a storage portion (not shown in FIGS. 917) and a support portion320. The storage portion can be substantially similar to the storageportion 211 of the frame 210 in FIGS. 2-5 and thus, is not described infurther detail herein. The support portion 320 can be any suitableshape, size, and/or configuration. For example, the support portion 320can include any suitable component, part, mechanism, linkage, and/or thelike configured to support, for example, the drive system 340, and/orthe cleaning assembly 365. In this embodiment, the support portion 320includes at least a top plate 321 that defines an opening 322 and abottom plate 323 that defines opening 324, which can be coupled to houseat least the drive system 340. Although not shown in FIGS. 9-17, thesupport portion 320 of the frame 310 can include any suitable component,part, mechanism, linkage, and/or the like configured to couple thecleaning assembly 365 to the frame 310. For example, in someembodiments, the frame 310 can include a cleaning assembly mount such asthe cleaning assembly mount 227 illustrated in FIG. 7.

As described above, the drive system 340 of the robot 300 is coupled toand/or is otherwise supported by the support portion 320 of the frame310. The drive system 340 can be any suitable system, mechanism,machine, assembly, etc. configured to move the robot 300 along asurface. For example, in this embodiment, the drive system 340 caninclude a single steerable wheel assembly and any suitable number ofpassive wheels (as described above). As shown in FIGS. 9-11, the drivesystem 340 is rotatably coupled to the frame 110 such that a portion ofthe drive system 340 is aligned with the opening 322 defined by the topplate 320 and such that a wheel 350 of the drive system 340 extendsthrough the opening 324 defined by the bottom plate 323. In this manner,one or more motors can be configured to rotate a wheel and/or at least aportion of the drive system 340 to move the robot 300 along a surface.

As shown in FIGS. 11-15, the drive system 340 includes a motor 342, aset of pulleys 346, a set of bearings 347, a wheel 350, a supportstructure 352, and a rotation subassembly 355. The motor 342 can be anysuitable motor configured to rotate an output 343 (see e.g., FIG. 13).The support structure 352 is configured to be coupled to and/or tosupport the motor 343, the set of pulleys 346, the set of bearings 347,and the rotation subassembly 355. For example, the support structure 352can be metal plates, metal alloy plates, thermoplastic plates, and/orthe like, which can be configured to provide structural support and/orrigidity to the drive system 340. Moreover, the support structure 352can define a number of openings configured to receive, for example, aportion of the motor 342 and/or a portion of one or more drive shafts(not shown in FIGS. 11-15), as described in further detail herein.

The rotation subassembly 355 can be fixedly coupled to the supportstructure 352 of the drive system 340 and fixedly coupled to the bottomplate 323 of the frame 310. The rotation subassembly 355 can include anysuitable number of plates, rings, components, etc. configured forrelative movement between one or more portions thereof, which in turn,can allow the drive system 340 to be rotated relative to the frame 310to steer the robot 300. For example, as shown in FIG. 13, the rotationsubassembly 355 includes a mounting ring 356, a support plate 359, anactuator plate 361, and a coupling ring 364. The mounting ring 356 isconfigured to be fixedly coupled to the bottom plate 323 of the frame310 (e.g., via any suitable number of mechanical fasteners, a weld,and/or the like). As shown, in this embodiment, the mounting ring 356 isa substantially annular ring having a recessed surface 357 and definingan opening 358.

The support plate 359 can be any suitable shape, size, and/orconfiguration. For example, as shown in FIG. 13, the support plate 359is a plate having a substantially circular cross-sectional shape anddefining an opening 360. The opening 360 is configured to receive aportion of the support structure 352 and a portion of the wheel 350, asdescribed in further detail herein. In some embodiments, theconfiguration of the support plate 359 can be based on and/or associatedwith at least a portion of the mounting ring 356. For example, at leasta portion of the support plate 359 can be rotatably disposed within themounting ring 356. More specifically, although not shown in FIGS. 11-15,the support plate 359 can include and/or can form a flange that can bein contact with the recessed surface 357 of the mounting ring 356, whilea portion of the support plate 359 extends through the opening 358defined by the mounting ring 356. In some embodiments, the mounting ring356 and/or the support plate 359 can include a surface finish, acoating, a lubricant, and/or the like that can reduce an amount offriction associated with a rotation of the support plate 359 along thesurface of the mounting ring 356 defining the recess 357. For example,in some embodiments, the mounting ring 356 can include one or moregrease fittings or the like that can receive a flow of grease, which canflow via one or more channels to the surface defining the recess 357.Thus, the support plate 359 can be rotated relative to the mounting ring356 with a relatively low amount of friction.

The actuator plate 361 can be any suitable shape, size, and/orconfiguration. For example, in this embodiment, the actuator plate 361has an engagement portion 363 and defines an opening 362. The opening362 is configured to receive a portion of the support structure 352 anda portion of the wheel 350, as described in further detail herein. Asshown in FIGS. 12 and 13, the actuator plate 361 can be coupled to asurface of the support plate 359 and can be coupled to a portion of thesupport structure 352, thereby coupling the support structure 352 to thesupport plate 359. Moreover, as shown in FIG. 13, the coupling ring 364can be disposed on a side of the mounting ring 356 opposite a side onwhich the actuator plate 361 is disposed. In some embodiments, thearrangement of the actuator plate 361 and the coupling ring 364 can besuch that any suitable number of fasteners can extend therebetween, thuscoupling the actuator plate 361 to the coupling ring 364. In suchembodiments, for example, the actuator plate 361 and the coupling ring364 can be configured to limit a movement of support plate 359 in anaxial direction (e.g., in a direction of an axis about which the supportplate 359 rotates. In other words, the actuator plate 361 and thecoupling ring 364 can collectively couple the support plate 359 to themounting ring 356 while allowing the support plate 359 to rotaterelative to the mounting ring 356.

Although not shown in FIGS. 9-17, in some embodiments, the robot 300 caninclude a steering actuator or the like configured to engage theengagement portion 363 of the actuator plate 361. For example, in someinstances, the steering actuator can be actuated (e.g., in response to asignal received from an electronics system such as the electronicssystem 290 described in detail above) to move the engagement portion 363from a first position to a second position. More specifically, with theactuator plate 361 coupled to the support plate 359, actuation of thesteering actuator can result in the engagement portion 363 being movedfrom a first position to a second position, which in turn, can result inthe support plate 359 being rotated relative to the mounting ring 356.

As described above, the drive system 340 includes the motor 342, the setof pulleys 346, the set of bearings 347, and the wheel 350. The wheel350 can be any suitable wheel and includes and/or is coupled to a wheelpulley 351, as described in further detail herein. As shown, forexample, in FIGS. 14 and 15, the wheel 350 can be coupled to a portionof the support structure 352 that extends through the openings 358, 360,and 362 of the mounting ring 356, support plate 359, and actuator plate361, respectively. For example, in some embodiments, the wheel 350 canbe configured to rotate about an axle or the like (not shown) coupled toand/or suspended from the support structure 352. Thus, the wheel 350 canbe rotated about the axle, for example, to move the robot 300 along thesurface, as described in further detail herein.

The motor 342 of the drive system 340 is coupled to the supportstructure and maintained in a substantially fixed position relativethereto. The motor 342 includes an output 343 to which an output pulley344 is coupled, as shown in FIGS. 13-15. Each bearing included in theset of bearings 347 is coupled to a portion of the support structure352. In this manner, the set of bearings 347 can be configured tosupport any number of drive shafts or the like (not shown in FIGS. 9-17)to which at least one associated pulley from the set of pulleys 347 iscoupled. For example, in this embodiment, the drive system 340 includesa first bearing 347A and a second bearing 347B configured to support afirst drive shaft (not shown), and a third bearing 347C and a fourthbearing 347D configured to support a second drive shaft (not shown).Moreover, the drive system 340 includes a first pulley 346A coupled to afirst end of the first drive shaft and second pulley 346B coupled to asecond end of the first drive shaft, and a third pulley 346C coupled toa first end of the second drive shaft and a fourth pulley 347D coupledto a second end of the second drive shaft.

Although not shown in FIGS. 11-15, the drive system 340 includes a setof belts coupled to the pulleys to form a pulley system. For example,such a pulley system can have a belt that operably couples the outputpulley 344 to the first pulley 346A, a belt that operably couples thesecond pulley 346B to the third pulley 346C, and a belt that operablycouples the fourth pulley 346D to the wheel pulley 351. Thus, with thefirst pulley 346A and the second pulley 346B coupled to the same driveshaft and with the third pulley 346C and the fourth pulley 346D, themotor 342 can rotate the output 343 and the output pulley 344, which inturn, results in a rotation of the wheel 350. In some embodiments, thesize, number, position, and/or arrangement of the set of pulleys 346 canbe such that an overall pulley ratio between the output pulley 344 andthe wheel pulley 351 is equal to a predetermined value. As such, thedrive system 340 can be improved and/or otherwise placed in a desiredconfiguration, for example, to decrease an amount of electric powerand/or torque associated with the motor 342 to rotate the wheel 350,increase an amount of torque associated with the wheel 350, define amaximum rotational velocity of the wheel 350, and/or the like.

As described above with reference to the robot 200, the robot 300 caninclude an electronics system (not shown) configured to send signals toand/or receive signals from the drive system, which result in a rotationof the wheel 350 and/or a rotation of the rotation subassembly 355.Thus, the drive system 340 can move the robot 300 along a surface. Insome embodiments, the electronics system can receive signals associatedwith an operating condition of the drive system 340 based on dataassociated with a user input, a sensor, a control device, an encoder, acamera, etc., as described in detail above. In some instances, thearrangement of the drive system 340 (e.g., using the wheel 350 to propelas well as steer the robot 300) can result in a reduced turning radiuswhen compared to, for example, a robot using two wheels that receivepower and steer the robot (e.g., an arrangement similar to a front wheeldrive vehicle). In some instances, such an arrangement, for example, canplace the cleaning assembly 365 into corners and/or other tight spaces(e.g., within five centimeters of a wall or corner), which mightotherwise result in the robot 300 becoming stuck and/or which mightotherwise be missed. Thus, such control methods, control systems,feedback systems, etc. can function similar to those described above andare therefore, not described in further detail herein.

As shown in FIGS. 16 and 17, the robot 300 includes the cleaningassembly 365. The cleaning assembly 365 included in the robot 300 can beany suitable shape, size, and/or configuration. The cleaning assembly365 is coupled to and/or is otherwise supported by the support portion320 of the frame 310. For example, as described above with reference tothe robot 200, the frame 310 can include a cleaning assembly mount (notshown in FIGS. 9-17) that can be coupled to a mounting portion (notshown in FIGS. 9-17) of the cleaning assembly. Thus, the arrangement ofthe cleaning assembly 365 and the frame 310 can allow the cleaningassembly 365 to be moved relative to the frame 310 (e.g., via anactuator and/or any suitable linkage). For example, in some embodiments,the cleaning assembly 365 can be moved closer to or away from the frame310, which in turn, can move the cleaning assembly 365 away from orcloser to, respectively, a surface along which the robot 300 moves.

The cleaning assembly 365 includes frame 366, a cover 367, a shroud 378,a first brush 369, a second brush 371, and a motor 374. The cover 367 iscoupled to the frame 366 and is configured to cover, house, and/orenclose at least a portion of the cleaning assembly 365. Moreparticularly, the cover 367 can couple to the frame 366 to define aninner volume 368 that can house at least a portion of the motor 374, thefirst brush 369, and the second brush 371. In some embodiments, at leasta portion of the inner volume 368 can define, for example, a suctionvolume or the like within which a negative pressure can be formed todraw detritus into the cleaning assembly 365 and ultimately into adetritus volume or the like. For example, as described above, the robot300 can include a vacuum pump and/or motor that can be in communicationwith the inner volume 368 and configured to form a negative pressuredifferential that can be operable in drawing detritus into the cleaningassembly 365.

The motor 374 of the cleaning assembly 365 can be any suitable motorconfigured, for example, to rotate the first brush 369 and the secondbrush 371. More specifically, the motor 374 includes an output 375 thatcan be operably coupled to a first pulley 370 fixedly coupled to thefirst brush 369, a second pulley 372 fixedly coupled to the second brush371, and a tensioner pulley 376 via a belt or chain (not shown in FIGS.16 and 17). As such, the motor 374 can rotate the output pulley 375,which in turn, rotates the first pulley 370, the second pulley 372, andthe tensioner pulley 376. Therefore, with the first pulley 370 fixedlycoupled to the first brush 369 and with the second pulley 372 fixedlycoupled to the second brush 371, the motor 374 can be configured torotate the first brush 369 and the second brush 371. Moreover, as shownin FIG. 16, the shroud 378 can be configured to cover and/or house atleast a portion of the output pulley 375, the first pulley 370, thesecond pulley 372, and the tensioner pulley 376.

In some embodiments, the arrangement of the cleaning assembly 365 can besuch that the motor 374 rotates the first brush 369 and the second brush371 in substantially the same rotational direction. In otherembodiments, the motor 374 can be configured to rotate the first brush369 in a first rotational direction and the second brush 371 in a secondrotational direction, opposite the first rotational direction. In stillother embodiments, the cleaning assembly 365 can include a first motorconfigured to rotate the first brush 369 and a second motor configuredto rotate the second brush 371 independent of the first brush 369. Inthis manner, the first brush 369 and the second brush 371 can berotated, for example, to sweep and/or scrub the surface to entraindebris and/or detritus within the inner volume 368. Moreover, a negativepressure produced by a vacuum source or the like (as described above)can draw the debris and/or detritus into a storage volume or the like(e.g., similar to the detritus volume 212 defined by the storage portion211 of the frame 210 described above with reference to FIG. 4).

At least a portion of the cleaning assembly 365 can be in communicationwith the electronics system (not shown) and can be configured to sendsignals to and/or receive signals from the electronics system associatedwith the operation of the cleaning assembly 365. For example, in someinstances, the electronics system can send a signal to the cleaningassembly 365 and/or an actuator or the like that can be operable inmoving the cleaning assembly 365 relative to the frame 310. In someinstances, the electronics system can send a signal operable intransitioning a pump and/or the motor 374 between an “off” operationalstate and an “on” operational state. For example, in some instances, theelectronics system can send a signal operable in transitioning the motor374 from an “off” operational state and an “on” operational state, whichin turn, can be operable in starting a rotation of the first brush 369and the second brush 371, respectively. Moreover, in some instances, theelectronics system can be configured to control and/or modulate anamount of pressure exerted by a cleaning member and/or cleaning head onthe surface (e.g., based on floor type, type and/or amount of detritus,and/or the like).

As described in detail above, the robot 300 can move along the surfacein at least a semi-autonomous manner such that the cleaning assembly 365cleans the surface. In some embodiments, the arrangement of the drivesystem 340, the cleaning assembly 365, and the electronics system (notshown in FIGS. 9-17) can allow the robot 300 to place the cleaningassembly 365 into relatively tight spaces and/or corners withoutbecoming stuck. In some instances, the drive system 340 can beconfigured to move the robot 300 along the surface to place the cleaningassembly 365 within a relatively small distance from a wall, corner,and/or other obstacle (e.g., within 5 centimeters or less of an object).Thus, the robot 300 can be configured to clean the surface insubstantially the same manner as described in detail above withreference to the robot 200.

Referring now to FIGS. 18-28, a device 400 such as, for example, a robotconfigured to clean a surface is illustrated according to an embodiment.The device 400 (also referred to herein as “cleaning robot” or “robot”)includes at least a frame 410, a drive system 440, an electronics system490, and a cleaning assembly 465. The cleaning robot 400 can be used toclean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface areasuch as, for example, a floor of a home, commercial building, warehouse,etc. The robot 400 can be any suitable shape, size, or configuration andcan include one or more systems, mechanisms, assemblies, orsubassemblies that can perform any suitable function associated with,for example, traveling along a surface, mapping a surface, cleaning asurface, and/or the like.

The frame 410 of the robot 400 can be any suitable shape, size, and/orconfiguration. For example, in some embodiments, the frame 410 caninclude a set of components or the like, which are coupled to form asupport structure configured to support the drive system 440, thecleaning assembly 465, and the electronic system 490. More particularly,in this embodiment, the frame 410 includes a storage portion 411 (seee.g., FIGS. 18-20) and a support portion 420 (see e.g., FIGS. 20-24). Asdescribed above with reference to the frame 110, the frame 410 caninclude any suitable components such as, for example, sheets, tubes,rods, bars, etc. In some embodiments, such components can be formed froma metal or metal alloy such as aluminum, steel, and/or the like. Inother embodiments, such components can be formed from a thermoplasticand/or polymer such as nylons, polyesters, polycarbonates,polyacrylates, ethylene-vinyl acetates, polyurethanes, polystyrenes,polyvinyl chloride (PVC), polyvinyl fluoride, poly(vinyl imidazole),and/or blends and copolymers thereof. In some embodiments, the frame 410can include and/or can support a body or the like configured to encloseat least a portion of the robot 400.

The storage portion 411 of the frame 410 can include a set of componentsconfigured to define a detritus cavity 412 and an electronics systemcavity 416 (see e.g., FIG. 20). In some embodiments, the storage portion411 of the frame 410 can be, for example, a body of the robot 400supported by the support portion 420 of the frame 410. That is to say,in some embodiments, the robot 400 can include a body or the like thatcan define the detritus cavity 412 and/or the electronics system cavity416.

The detritus cavity 412 can be any suitable shape, size, orconfiguration. Although not shown, the frame 410 and/or the body of therobot 400 can define an opening configured to place the detritus cavity412 in fluid communication with the cleaning assembly 465. Thus, thecleaning assembly 465 can transfer refuse, detritus, fluid, and/or thelike from the surface on which the robot 400 is moving to the detrituscavity 412, as described in further detail herein. Furthermore, as shownin FIG. 20, the detritus cavity 412 can store and/or house a vacuumsource 485 that can be configured to generate a negative pressuredifferential within the detritus cavity 412, which in turn, can resultin a suction force exerted on and/or within the cleaning assembly 465.For example, the vacuum source 485 can be a vacuum pump (e.g., a pistondriven pump, a rotary vane pump, a rotary screw pump, a diaphragm pump,and/or the like) that can draw a flow of fluid (e.g., a gas such as airand/or a liquid) therethrough. Thus, the vacuum source 485 can drawrefuse, detritus, fluid, dirt, and/or the like from the cleaningassembly 465 and into the detritus cavity 412, as described in furtherdetail herein. While the vacuum source 485 is shown in FIG. 20 as beingdisposed within the detritus cavity 412, in other embodiments, thevacuum source 485 can be disposed in, for example, a vacuum cavity orthe like, as described above with reference to the robot 200.

The electronics system cavity 416 is configured to receive the at leasta portion of the electronics system 490. More specifically, the storageportion 411 of the frame 410 can include a wall 417 configured tophysically and fluidically isolate the detritus cavity 412 from theelectronics system cavity 416. In this manner, electronic components canbe disposed in the electronics system volume 416 and not exposed to avolume of detritus transferred into the detritus cavity 412. In someembodiments, the electronics system cavity 416 can be sufficiently largeto house at least a portion of the electronics system 490 such as, forexample, a printed circuit board (PCB), processor, memory, radios, powerdistribution components, a battery, and/or the like (not shown in FIGS.18-28). Although not shown, the storage portion 411 can include one ormore removable portions, which can be moved relative to the frame 410 toprovide access to the detritus cavity 412 and/or the electronics storagevolume 416.

As shown in FIGS. 18 and 19, the storage portion 411 of the frame 410(and/or a body coupled thereto) includes a cover 418 that covers and/orencloses the electronics system cavity 416 and/or the detritus cavity412. The cover 418 can be configured to store and/or support one or moreelectronic components included in the electronics system 490. Forexample, the cover 418 can be configured to support one or more cameras493 (see e.g., FIG. 18) and a user interface 492 (see e.g., FIG. 19) ofthe electronics system 490, as described in further detail herein. Insome embodiments, the cover 418 can be movable relative to the storageportion 411 of the frame 410 to allow access to the detritus cavity 412and/or the electronics system volume 416. For example, in someembodiments, the cover 418 can be coupled to the storage portion 411 ofthe frame 410 and/or a body coupled thereto via one or more hinges orthe like, which can allow the cover 418 to be pivoted relative to theframe 410 to provide access to the detritus cavity 412 and/or theelectronics system cavity 416.

As shown in FIGS. 20-24, the support portion 420 include any suitablecomponent, part, mechanism, linkage, and/or the like configured tosupport, for example, the storage portion 411 of the frame 410, thedrive system 440, and/or the cleaning assembly 465. In this embodiment,the support portion 420 includes a top plate 421 and a support structure425. The top plate 421 can be coupled to the storage portion 411 of theframe 410 to couple the support portion 420 thereto. In addition, thetop plate 421 can be configured to support and/or couple to a lasertransceiver 494 and/or any other suitable sensor, and/or transceiverincluded in the electronics system 490 (see e.g., FIG. 21).

The support structure 425 can include any suitable component configuredto support at least a portion of the drive system 440, and/or configuredto couple any suitable motor, actuator, pump, pulley, etc. to thesupport portion 420 of the frame 410. For example, the support structure425 can be coupled to a mounting portion 479 of the cleaning assembly465 to couple the cleaning assembly 465 to the support portion 420 ofthe frame 410, as described in further detail herein. In addition, thesupport portion 420 includes a first drive mechanism mount 452Aconfigured to support a first drive mechanism 441A of the drive system440, a second drive mechanism mount 452B configured to support a seconddrive mechanism 441B of the drive system 440, and the third drivemechanism mount 452 configured to support a third drive mechanism 441Cof the drive system 440.

As shown in FIGS. 21-25, the drive system 440 can be any suitablesystem, mechanism, machine, assembly, etc. coupled to the supportportion 420 and configured to move the robot 400 along a surface. Forexample, in this embodiment, the drive system 440 includes the firstdrive mechanism 441A, the second drive mechanism 441B, and the thirddrive mechanism 441C. As described above, the first drive mechanism 441Ais coupled to the first drive mechanism mount 452A of the supportportion 420 of the frame 410, the second drive mechanism 441B is coupledto the second drive mechanism mount 452B of the support portion 420, andthe third drive mechanism 441C is coupled to the third drive mechanismmount 452C. In this embodiment, the first drive mechanism 441A, thesecond drive mechanism 441B, and the third drive mechanism 441C aresubstantially similar in form and function. Thus, a detailed discussionof, for example, the first drive mechanism 441A applies the second drivemechanism 441B and the third drive mechanism 441C, and as such, thesecond drive mechanism 441B and the third drive mechanism 441C are notdescribed in further detail herein. The drive mechanisms 441A, 441B, and441C can differ, however, by coupling to the drive mechanism mounts452A, 452B, and 452C, respectively, in different positions to allowcomponents of the drive mechanisms 441A, 441B, and/or 441C to extendfrom the drive mechanism mounts 452A, 452B, and 452C, respectively,without interfering with components from the other drive mechanisms, asshown, for example, in FIGS. 23 and 24.

As shown in FIGS. 22-24, the arrangement of the support portion 420 ofthe frame 410 and the drive system 440 is such that the drive mechanisms441A, 441B, and 441C are disposed at a desired angle Z from one another.More specifically, the arrangement of the frame 410 and the drive system440 can be such that a wheel 448A of the first drive mechanism 441A isconfigured to rotate about an axis A₁ that is disposed at the angle Zangle relative to an axis A₂ about which a wheel 448B of the seconddrive mechanism 441B rotates and relative to an axis A₃ about which awheel 448C of the third drive mechanism 441C rotates. Similarly, theaxis A₂ associated with the wheel 448B is disposed at the angle Zrelative to the axis A₃ associated with the wheel A₃ (see e.g., FIG.24). Moreover, in this embodiment, the arrangement of the drive system240 is such that the angle Z is about 120 degrees. In other embodiments,the angle Z can be any other suitable angle.

As shown in FIG. 25, the first drive mechanism 441A includes a motor442A, an output pulley 443A, a drive shaft 445A, a drive pulley 446A, aset of bearings 447A, and the wheel 448A. The motor 442A of the firstdrive mechanism 441A is fixedly coupled to the first drive mechanismmount 452A and thus, fixedly coupled to the support portion 420 of theframe 410. The motor 442A includes and/or is otherwise coupled to theoutput pulley 443A. For example, the motor 442A can include an outputshaft or the like to which the output pulley 443A is coupled. The drivepulley 446A is fixedly coupled to the drive shaft 445A. As shown inFIGS. 24 and 25, the drive pulley 446A is operatively coupled to theoutput pulley 443A via a belt 444A. Thus, the drive pulley 446A isconfigured to rotate in response to the motor 442A rotating the outputpulley 443A.

The set of bearings 447A are configured to support the drive shaft 445Aand to rotatably couple the drive shaft 445A to the first drivemechanism mount 452A. More particularly, the set of bearings 447Aincludes a first bearing 447A fixedly coupled to the first drivemechanism mount 452A and configured to receive a first end portion ofthe drive shaft 445A, and a second bearing 447A coupled to the wheel448A (e.g., a wheel hub or the like not shown in FIGS. 18-28) andconfigured to receive a second end portion of the drive shaft 445A. Assuch, the set of bearings 447A can be configured to support the driveshaft 445A and can allow the drive shaft 445A to rotate relative to thefirst drive mechanism mount 452A. Conversely, the drive shaft 445Aand/or the second bearing 447A can be coupled to the wheel 448A suchthat rotation of the drive shaft 445A results in an associated rotationof the wheel 448A. In this manner, the motor 442A can receive a flow ofelectric power that can cause the motor 442A to rotate the output pulley443A, which in turn, results in an associated rotation of the wheel448A.

Although not shown in FIGS. 18-28, the wheel 448A included in the firstdrive mechanism 441A can be substantially similar in form and functionto the first wheel 248 with reference to FIG. 8. Specifically, the wheel448A of the first drive mechanism 441A can be, for example, anomni-wheel, a mecanum wheel, and/or the like that defines acircumference and that includes a set of rollers (not shown in FIGS.18-28) rotatably disposed along the circumference. In this manner, asthe wheel 448A is rotated about its axis (e.g., associated with thedrive shaft 445A), each roller disposed along the circumference of thewheel 448A can be configured to rotate about its associated axis, whichcan be at any suitable angle relative to the axis of rotation of thewheel 448A (e.g., at about 45 degrees, about 90 degrees, about 135degrees, and/or any other suitable angle).

As described above, second drive mechanism 441B and the third drivemechanism 441C can be substantially similar in form and function to thefirst drive mechanism 441A. In this manner, a motor 442B of the seconddrive mechanism 441B can be configured to rotate the wheel 448B and amotor 442C of the third drive mechanism 441C can be configured to rotatethe wheel 448C. The wheels 448B and 448C can be omni-wheels, mecanumwheels, and/or the like, as described above with reference to the wheel448A of the first drive mechanism 441A. Moreover, as described above,the first drive mechanism 441A, the second drive mechanism 441B, and thethird drive mechanism 441C are disposed, for example, at about 120degree angles from each other. In this manner, the electronics system490 can send signals to the drive mechanisms 441A, 441B, and 441C todrive the robot 400 in any suitable direction along the surface.

By way of example, in some instances, the electronics system 490 canexecute a set of processes and/or the like to drive the robot 400 in aforward direction (e.g., perpendicular to the wheel 448A of the firstdrive mechanism 441A (see, for example, FIG. 24)). In such instances,the second drive mechanism 441B and the third drive mechanism 441C canreceive substantially equivalent signals and/or a substantially equalamount of electric power from the electronics system 490 and, inresponse, to the motor 442B and the motor 442C, respectively, can rotatethe wheels 448B and 448C, respectively, with substantially the samespeed. Conversely, in such instances, the motor 442A of the first drivemechanism 441A does not receive signals and/or electric power from theelectronics system 490. Thus, a force resulting from the rotation of thewheel 448B about its axis A₂ and the rotation of the wheel 448C aboutits axis A₃ at substantially the same speed results in a force in thedirection of the axis A₁ associated with the first drive mechanism 441A.Moreover, with each of the wheels 448A, 448B, and 448C beingomni-wheels, mecanum wheels, and/or the like, the resultant force can besuch that the rollers of each of the wheels 448A, 448B, and 448C rotateabout their associated axes. In this manner, the drive system 400 canmove the robot 400 in a forward direction (e.g., parallel to and/or inthe direction of the axis A₁ associated with the first drive mechanism441A).

In other instances, the electronics system 490 can execute a set ofprocesses and/or the like to drive the robot 400 in a direction otherthan the direction along the axis A₁. In such instances, the first drivemechanism 441A, the second drive mechanism 441B, and the third drivemechanism 441C can each receive an input from the electronics system 490that can be, for example, specific to that drive mechanism 441A, 441B,and/or 441C (e.g., signals indicative of different instructions for eachdrive mechanism 441A, 441B, or 441C and/or different amounts of electricpower for each drive mechanism 441A, 441B, or 441C). In response, thefirst drive mechanism 441A can rotate the wheel 448A about its axis A₁with a desired rotational speed, the second drive mechanism 441B canrotate the wheel 448B about its axis A₂ with a desired rotational speed,and the third drive mechanism 441C can rotate the wheel 448B about itsaxis A₃ with a desired rotational speed. Thus, a resultant forceassociated with the rotation of the wheels 448A, 448B, and 448C can bein any suitable direction (e.g., a direction other than a directionparallel to one of the axes A₁, A₂, and/or A₃. With each of the wheels448A, 448B, and 448C being omni-wheels, mecanum wheels, and/or the like,the resultant force can be such that the rollers of each of the wheels448A, 448B, and 448C rotate about their associated axes. In this manner,the drive system 400 can move the robot 400 in any suitable direction byincreasing or decreasing an output speed of the motors 442A, 442B,and/or 442C.

The cleaning assembly 465 included in the robot 400 can be any suitableshape, size, and/or configuration. As described above, the cleaningassembly 465 includes the mounting portion 479, which is coupled to thesupport structure 425 of the frame 410 (see e.g., FIGS. 21 and 22). Insome embodiments, the mounting portion 479 of the cleaning assembly 465can include any suitable linkage and/or mechanism configured to allowthe cleaning assembly 465 to be moved relative to the frame 410 via anactuator 486, as shown in FIG. 22. More specifically, the actuator 486can be coupled to an actuator mount 431 of the support structure 425 andthe mounting portion 479 of the cleaning assembly 465. Thus, actuationof the actuator 486, for example, can reconfigure the mounting portion479 of the cleaning assembly 465 (e.g., change an arrangement of anysuitable linkage and/or the like included in the mounting portion 479).Thus, in some embodiments, the cleaning assembly 465 can be moved closerto or away from the frame 410, which in turn, can move the cleaningassembly 465 away from or closer to, respectively, a surface along whichthe robot 400 moves. For example, in some instances, the cleaningassembly 465 can be moved relative to the frame 410 to modulate and/orcontrol an amount or pressure between a cleaning head and/or cleaningmember of the cleaning assembly 465 and the surface. For example, insome instances, a pressure exerted by a cleaning head on a wood floorand/or the like (e.g., in a gym) may be less than a pressure exerted bythe cleaning head on a concrete floor and/or the like (e.g., in awarehouse). In other embodiments, the amount of pressure can bemodulated based on, for example, a determination of a soil level of thesurface being cleaned (e.g., a higher pressure for very dirty floors).

As shown in FIGS. 26-28, the cleaning assembly 465 includes frame 466, acover 467, a shroud 478, a first brush 469, a second brush 471, a thirdbrush 484, and a motor 474. The frame 466 can be configured to supportat least a portion of the cleaning assembly 465. As shown in FIG. 26,the frame 466 includes and/or can be coupled to a skirt 480 that canextend from the frame 466 toward a surface to be cleaned. The cover 467is coupled to the frame 466 and is configured to cover, house, and/orenclose at least a portion of the cleaning assembly 465. Moreparticularly, the cover 467 can couple to the frame 466 to define aninner volume 468 that can house at least a portion of the first brush469 and the second brush 471, as shown in FIG. 27. In some embodiments,at least a portion of the inner volume 468 can define, for example, asuction volume or the like within which a negative pressure can beformed to draw detritus into the cleaning assembly 465 and ultimatelyinto a detritus volume or the like. For example, as described above, therobot 400 includes the vacuum source 485 that can be in communicationwith the inner volume 468 of the cleaning assembly 465 via, for example,a port 481 (see e.g., FIG. 26). In this manner, the vacuum source 485can be configured to form a negative pressure differential within theinner volume 468 that can be operable in drawing detritus into thecleaning assembly 465.

The motor 474 of the cleaning assembly 465 can be any suitable motorconfigured, for example, to rotate the first brush 469 and the secondbrush 471. As shown in FIG. 28, the motor 474 includes an output 475that can be operably coupled to a first pulley 470 fixedly coupled tothe first brush 469, a second pulley 472 fixedly coupled to the secondbrush 471, and a tensioner pulley 476 via a belt 477. As such, the motor474 can rotate the output pulley 475, which in turn, rotates the firstpulley 470, the second pulley 472, and the tensioner pulley 476.Therefore, with the first pulley 470 fixedly coupled to the first brush469 and with the second pulley 472 fixedly coupled to the second brush471, the motor 474 can be configured to rotate the first brush 469 andthe second brush 471. Moreover, as shown in FIG. 16, the shroud 478 canbe configured to cover and/or house at least a portion of the outputpulley 475, the first pulley 470, the second pulley 472, and thetensioner pulley 476.

In some embodiments, the arrangement of the cleaning assembly 465 can besuch that the motor 474 rotates the first brush 469 and the second brush471 in substantially the same rotational direction. In otherembodiments, the motor 474 can be configured to rotate the first brush469 in a first rotational direction and the second brush 471 in a secondrotational direction, opposite the first rotational direction. In stillother embodiments, the cleaning assembly 465 can include a first motorconfigured to rotate the first brush 469 and a second motor configuredto rotate the second brush 471 independent of the first brush 469. Inthis manner, the first brush 469 and the second brush 471 can berotated, for example, to sweep and/or scrub the surface to entraindebris and/or detritus within the inner volume 468. Moreover, a negativepressure produced by a vacuum source or the like (as described above)can draw the debris and/or detritus into a storage volume or the like(e.g., similar to the detritus volume 212 defined by the storage portion211 of the frame 210 described above with reference to FIG. 4). Althoughthe brushes 469 and 471 are shown in FIG. 27 as being substantiallycylindrical, in other embodiments, the brushes 469 and 471 can be anysuitable configuration. For example, in some embodiments, the brushes469 and 471 can include a cylindrical base with any suitable number ofbrushes arranged in any suitable manner along the cylindrical base. Inother embodiments, the brushes 469 and 471 can include any suitablenumber of cords, strings, robes, and/or other cleaning elementsextending from the cylindrical base. In still other embodiments, thebrushes 469 and 471 can be a disc and/or orbital brush and/or the like.

As described above, the cleaning assembly 465 includes a third brush484. The third brush 484 can be any suitable cleaning member such as adisc and/or orbital brush. As shown in FIGS. 26-28, third brush 484 canbe coupled to and/or otherwise supported by a support arm 482 coupled tothe cover 467 and is disposed substantially outside of the inner volume468 defined by the frame 466 and cover 467. Specifically, the supportarm 482 extends from the cover 467 such that the third brush 484 isdisposed forward of the frame 466. The support arm 484 can be anysuitable configuration and/or support structure. For example, as shownin FIG. 26, the support arm 482 can include a spring 483 or the likeconfigured to allow the third brush 484 to be flexibly coupled to thecover 467. For example, with the third brush 484 being disposed forwardof the frame 410, the third brush 484 can be placed in to contact withobjects which are not otherwise in contact with the cleaning assembly465. As such, the arrangement of the spring 483 can be such that atleast a portion of a force associated with the impact of the third brush484 when placed in contact with the object compresses the spring 483. Inother words, the spring 483 can be configured to absorb at least aportion of a force associated with the third brush 484 impacting anobject. Although not shown in FIGS. 26-28, the third brush 484 can becoupled to a motor configured to rotate the third brush 484 in responseto, for example, a signal received from the electronics system 490.

At least a portion of the cleaning assembly 465 can be in communicationwith the electronics system 490 and can be configured to send signals toand/or receive signals from the electronics system 490 associated withthe operation of the cleaning assembly 465. For example, in someinstances, the electronics system 490 can send a signal to the actuator486 that can be operable in actuating the actuator 486 to move thecleaning assembly 465 relative to the frame 410, as described above. Insome instances, the electronics system 490 can send a signal operable intransitioning the motor 474 between an “off” operational state and an“on” operational state, which in turn, can be operable in starting arotation of the first brush 469 and the second brush 471, respectively.Similarly, the electronics system 490 can be configured to send a signalto the motor coupled to the third brush 484, which can be operable instarting or stopping a rotation of the third brush 484.

As described above, the electronics system 490 can be configured tocontrol any suitable portion of the robot 400 using, for example, afeedback control method such as a PID control scheme and/or the like.For example, the electronics system 490 can include and/or can be incommunication with one or more electric and/or electronic componentssuch as any number of cameras, transceivers, beacons, encoders,odometers, tachometers, accelerometers, IMUS, proximity sensors, relaylogics, switches, and/or the like (collectively referred to herein as“sensors”). In some embodiments, the electronics system 490 can includeand/or can be in communication with any of the sensors described above.As such, the sensors can sense, detect, and/or otherwise determine oneor more operating condition associated with the robot 400 and/or one ormore environmental condition associated with the environment withinwhich the robot 400 is disposed, as described in detail above.

Expanding further, in this embodiment, the electronics system 490includes and/or is in communication with at least the user interface492, the cameras 493, and the laser transceiver 494. Although not shownin FIGS. 18-28, the electronics system 490 can also include and/or canbe in communication with one or more encoders, odometers,accelerometers, and/or IMUS included in the drive system 440. Similarly,the electronics system 490 can include and/or be in communication withany suitable kill switch device and/or safety device or mechanism, whichcan be operable in powering down or off the robot 400 when a criteriaassociated with a potential safety hazard is satisfied. The lasertransceivers 494, for example, can be a light-radar (LIDAR) and can beconfigured to emit a laser beam (e.g., visible light, infrared light,and/or the like) and configured to sense and/or otherwise determine anamount of reflection, refraction, dissipation, and/or the likeassociated with the emitted laser beam. As such, the laser transceiver494 can be configured to sense a relative position of objects within anenvironment and/or the like, as described in detail above with referenceto the robot 200 in FIGS. 2-8.

The electronics system 490 can be implemented in any suitable deviceand/or assembly. For example, the electronics system 490 can include aPCB with at least a processor in communication with a memory. In thismanner, the processor can be configured to execute a set ofinstructions, code, and/or modules (e.g., stored in the memory). In someembodiments, the user interface 492 of the electronics system 490 canbe, for example, a tablet or the like. In such embodiments, at least aportion of the electronics system 490 can be implemented in the userinterface 492. By way of example, in some embodiments, the userinterface 492 (i.e., tablet) can include a processor, a memory, aninput/output (I/O) interface, and/or the like. As such, the processorcan be configured to execute a set of instructions or code stored in thememory and can send and/or receive signals to any suitable electricand/or electronic component included in the robot 400. In someembodiments, the user interface 492 can implement, for example, afeedback control system or the like, in which the user interface 492 canreceive signals from any suitable sensor or the like (e.g., includingthe laser transceiver 494, the cameras 493, and/or any other sensordescribed herein), and can execute a set of instructions and/or codeassociated with defining one or more subsequent actions for any suitableelectric and/or electronic component included in the robot. In someembodiments, the user interface 492 can execute a control scheme such asa PID control and/or the like. In other embodiments, the user interface492 can allow a user to manually operate and/or manage the robot 400. Instill other embodiments, the electronics system 490 can be implementedin any other suitable hardware, which can be in communication with theuser interface 492. For example, in some embodiments, the user interface492 is a display or the like configured to present data based on one ormore signals received, for example, from a processor. In someembodiments, the user interface 492 can be a tablet configured tocommunicate with a remote electronic device such as a personal computeror mobile electronic device (e.g., smartphone) via a wired or wirelessnetwork and/or the Internet. Moreover, in some instances, the userinterface 492 can be removable from the robot 200 while remaining incommunication with the remaining portions of the robot 200.

As described in detail above with reference to the robot 200, theelectronics system 490 can receive signals associated with one or moreoperating conditions from the cameras 493, the laser transceiver 494,and/or any other suitable sensor (not shown in FIGS. 18-28). In turn,the electronics system 490 can execute a set of instructions, code,modules, etc. associated with controlling one or more subsequent actionof the drive system 440 and/or the cleaning assembly 465, based at leastin part on the data received from the sensors. The electronics system490 can then send signals indicative of instructions to perform the oneor more subsequent action to an associated electric and/or electroniccomponent (e.g., the actuator 486 coupled between the frame 410 and thecleaning assembly 465, a pump such as the vacuum source 485, a motorsuch as the motors 442A, 442B, and 442C of the drive system 440, themotor 474 of the cleaning assembly 465, and/or any other suitabledevice).

For example, in some instances, the laser transceiver 494 can senseproximity between a portion of the robot 400 and an object, and can sendsignals associated therewith to the electronics system 490. Based atleast in part on a predetermined criteria and/or threshold associatedwith the proximity data (e.g., stored in the memory or the like), theelectronics system 490 (e.g., a processor included therein) can performand/or execute one or more processes and/or modules operable indetermining a subsequent action of at least a portion of the robot 400(as described in detail above with reference to the robot 200).Similarly, the cameras 493 can capture image and/or video data and cansend the data to the electronics system 490. The cameras 493 can be, forexample, Kinect v2 cameras, as described above. In some embodiments, thecamera 493 can capture discrete pictures and/or can continuously recorda video stream, which can include data used by the electronics system490 to determine a relative position of the robot 400, objectrecognition and/or verification, real time monitoring, tracking, and/orthe like. In some instances, the electronics system 490 can receiveimaging data from the cameras 493 and can execute a set of processes topresent the imaging data on the user interface 492. In other instances,the electronics system 490 can be configured to send a signal associatedwith the imaging data to a remote electronic device via a network or thelike. In some instances, the camera 493 can capture video data while therobot 400 is operating and can store the video data, which can be laterreviewed by a user to verify completion and/or functioning of the robot400 (e.g., via the user interface 492 and/or the remote electronicdevice). In this manner, the electronics system 490 can receive signalsfrom any suitable sensor or the like and can control the robot 400 in atleast a semi-autonomous manner, as described in detail above withreference to the robot 200 illustrated in FIGS. 2-8. Thus, the controlprocesses and/or the like are not described in further detail herein.

FIGS. 29-40 illustrate a device 500 such as, for example, a robotconfigured to clean a surface according to another embodiment. Thedevice 500 (also referred to herein as “cleaning robot” or “robot”)includes at least a frame 510, a drive system 540, an electronics system590, and a cleaning assembly 565. The cleaning robot 500 can be used toclean (e.g., vacuum, scrub, disinfect, etc.) any suitable surface areasuch as, for example, a floor of a home, commercial building, warehouse,etc. The robot 500 can be any suitable shape, size, or configuration andcan include one or more systems, mechanisms, assemblies, orsubassemblies that can perform any suitable function associated with,for example, traveling along a surface, mapping a surface, cleaning asurface, and/or the like. Moreover, portions of the robot 500 can besimilar in at least form and/or function to associated portions of therobots 100, 200, 300, and/or 400 and thus, similar portions are notdescribed in further herein.

The frame 510 of the robot 500 can be any suitable shape, size, and/orconfiguration. For example, in some embodiments, the frame 510 caninclude a set of components or the like, which are coupled to form asupport structure configured to support the drive system 540, thecleaning assembly 565, and the electronic system 590. More particularly,in this embodiment, the frame 510 includes an upper storage portion 508(see e.g., FIGS. 29-32), a lower storage portion 536 (see e.g., FIGS.29-32), an electronics storage portion 517, and a support portion 520(see e.g., FIGS. 33-36). As described above with reference to the frame410 of the robot 400, the frame 510 can include any suitable componentssuch as, for example, sheets, tubes, rods, bars, etc. For example, inthe embodiment shown in FIGS. 29-40, the frame 510 includes a handle 505configured to be engaged by a user during initialization and/or manualuse of the robot 500. In other embodiments, the frame 510 does notinclude the handle 505. In some embodiments, the frame 510 can includeand/or can support a body or the like configured to enclose at least aportion of the robot 500. For example, in this embodiment, the upperstorage portion 508 and the lower storage portion 536 collectively format least a portion of a body of the robot 500.

The electronics storage portion 517 (see e.g., FIG. 30) is configured toreceive at least a portion of the electronics system 590. Morespecifically, the electronics storage portion 517 of the frame 510 caninclude a set of walls configured to at least temporarily isolate atleast the portion of the electronics system 590. Although not shown, theelectronics storage portion 517 can include one or more removableportions, which can be moved relative to and/or can be removed from theframe 510 to access to the electronics system 590 contained therein.

As shown in FIGS. 31 and 32, the upper storage portion 508 of the frame510 can include a set of components configured to define a detrituscavity 512. The detritus cavity 512 can be any suitable shape, size, orconfiguration. Although not shown, the frame 510 and/or the body of therobot 500 can define an opening configured to place the detritus cavity512 in fluid communication with the cleaning assembly 565, as describedin further detail herein. The detritus cavity 512 can store and/or housea vacuum source 585 that can be configured to generate a negativepressure differential within the detritus cavity 512, which in turn, canresult in a suction force exerted on and/or within the cleaning assembly565. Thus, the cleaning assembly 565 can transfer refuse, detritus,fluid, and/or the like from the surface on which the robot 500 is movingto the detritus cavity 512. Moreover, the upper storage portion 508includes and/or is coupled to a cover or lid 518 configured tosubstantially close off the detritus cavity 512 when the cover or lid518 is in a closed configuration (see e.g., FIG. 29). In someembodiments, the upper storage portion 508 of the frame 510 and/or thedetritus cavity 512 can be substantially similar in form and/or functionto at least a portion of the storage portion 411 and/or the detrituscavity 412, respectively, described above with reference to the robot400. Thus, the upper storage portion 508 is not described in furtherdetail herein.

The lower storage portion 536 can include a set of components configuredto define one or more cavities and/or storage compartments. For example,as shown in FIGS. 31 and 32, the lower storage portion 536 defines atleast a battery cavity 537 configured to receive, store, and/orotherwise enclose one or more batteries 591 of the robot 500. Asdescribed above with reference to the upper storage portion 508, thelower storage portion 536 includes a cover or lid 538 configured tosubstantially close off, isolate, and/or cover the battery cavity 537when in a closed configuration (see e.g., FIG. 29). Although not shown,the lower storage portion 536 can also contain and/or define one or morestorage compartments configured to store a liquid such as a cleaningsolution and/or a waste fluid (e.g., a used volume of the cleaningsolution). Moreover, while not shown, the lower storage portion 536 caninclude any suitable tube, pipe, conduit, channel, opening, plumbing,etc. configured to establish fluid communication between the lowerstorage portion 536 and the cleaning assembly 565 such that fluid (e.g.,a liquid such as a cleaning solution) can be transferred therebetween.In some embodiments, a pump can be disposed within the lower storageportion 536 and/or between the lower storage portion 536 and thecleaning assembly 565 to urge a volume of liquid to flow therebetween.

The support portion 520 can include any suitable component, part,mechanism, linkage, and/or the like configured to support, for example,the storage portion 511 of the frame 510, the drive system 540, and/orthe cleaning assembly 565. For example, in the embodiment shown in FIGS.33-36, the support portion 520 includes a top plate 521 and a supportstructure 525. The top plate 521 can be coupled to the storage portion511 of the frame 510 to couple the support portion 520 thereto. As shownin FIG. 33 the top plate 521 also can be coupled to and/or can otherwisesupport a battery tray 518, which in turn, supports the set of batteries591. As shown in FIG. 34, the top plate 521 can include and/or can becoupled to a set of bumpers 504 (e.g., dampers, cushions, springs, etc.)configured to provide shock absorption and/or dispersion of a forceotherwise transferred from the top plate 521 to the battery tray 518. Insome embodiments, the lower storage portion 536 can be coupled to thebattery tray 518 and, as such, the arrangement of the bumpers 504 or thelike can reduce an amount of force and/or shock otherwise transferred bythe top plate 521 on the lower storage portion 536. In addition, the topplate 521 can be configured to support and/or couple to a lasertransceiver 594 and/or any other suitable sensor, and/or transceiverincluded in the electronics system 590 (see e.g., FIGS. 33-35).

The support structure 525 can include any suitable component configuredto support at least a portion of the drive system 540, the cleaningassembly 565, and/or a rear skirt assembly 535. For example, as shown inFIG. 35, the support structure 525 is coupled (e.g., mechanicallycoupled via one or more fasteners, welded and/or otherwise joined, etc.)to a support plate 559, which in turn, is coupled to a drive mechanism541 of the drive system 540. In addition, the support structure 525 isoperably coupled to a set of wheels 548 of the drive system 540 via oneor more bearings, axels, hubs, etc. As such, the support structure 525is configured to support the drive system 540, thereby coupling thedrive system 540 to the frame 510.

Similarly, the support structure 525 can be coupled to any suitablestructure, component, device, etc. configured to couple the supportstructure 525 to the cleaning assembly 565. For example, the supportstructure 525 is coupled to at least a set of linkage 528 and a pivotmember 529 configured to movably couple the cleaning assembly 565 to thesupport structure 525. For example, the linkage 528 and the pivot member529 each can be coupled to a mounting portion 579 of the cleaningassembly 565 to allow the cleaning assembly 565 to be moved closer to oraway from the surface in response to an actuation of, for example, afirst actuator 586, as described in further detail herein.

As shown in FIGS. 35 and 36, the support structure 525 is also coupledto a second actuator 587 and a set of rollers 588. The second actuator586 is configured to couple to a coupling portion 534 of the rear skirt535. In this manner, the second actuator 586 can be actuated to move therear skirt 535 closer to or further from the surface being cleaned. Inthis manner, the rear skirt 535 can engage the surface along which therobot 500 travels to reduce an amount of debris not entrained in thecleaning assembly 565. The rollers 588 are configured to support, forexample, one or more wires, hoses, conduits, tubes, etc. running along alength of the support structure 525. In some instances, the arrangementand/or use of the rollers 588 can prevent damage to the wires and/ordamage or kinking of the hoses, etc. when the cleaning assembly 565 ismoved closer to or further from the surface being cleaned.

As shown in FIGS. 35-37, the drive system 540 can be any suitablesystem, mechanism, machine, assembly, etc. coupled to the supportportion 520 (e.g., the support structure 525) and configured to move therobot 500 along a surface. For example, in this embodiment, the drivesystem 540 includes a drive mechanism 541 having a single steerablewheel and any suitable number of passive wheels 548 (as described abovewith reference to the robot and 300). The wheels 548 can be coupled tothe support structure 525 in any suitable manner. For example, asdescribed above, the wheels 548 can be coupled to the support structure525 via one or more bearings, axles, hubs, bushings, etc. Whiledescribed as being passive wheels, in other embodiments, the wheels 548can include and/or can be at least operably coupled to one or moremotors. In addition, though not shown in FIGS. 35-37, the wheels 37 canbe coupled to any suitable sensor or encoder such as those describedherein.

As shown in FIG. 37, the drive mechanism 541 is coupled to the supportplate 559, which in turn, couples the drive mechanism 541 to the frame510. The drive mechanism 541 includes a first motor 542A, a second motor542B, a rotation subassembly 555, a coupling plate 561, a wheel 550, andone or more sensors 595. The wheel 550 and the first motor 542A are eachcoupled to the coupling plate 561, which in turn, is fixedly coupled toa portion of the rotation subassembly 555, as described in furtherdetail herein). More specifically, the first motor 542A is fixedlycoupled to the coupling plate 561 and the wheel 550 is rotatably coupledto the coupling plate 561 and in contact with, for example, an output ofthe first motor 542A such that rotation of the output of the first motor542A results in a rotation of the wheel 550 relative to the couplingplate 561. The arrangement of the wheel 550 and the first motor 542A issuch that the first motor 542A rotates the wheel 550 about an axis thatis substantially parallel to the surface along which the robot 500moves. Said another way, the wheel 550 is configured to rotate about asubstantially horizontal axis in response to an output of the firstmotor 542A.

The rotation subassembly 555 is coupled to the coupling plate 561 and tothe support plate 559, which in turn, rotatably couples at least aportion of the drive mechanism 541 to the support structure 525 of theframe 510. More specifically, the rotation subassembly 555 includes amounting plate 556 that is coupled to the second motor 542B androtatably coupled to an output member 546 of the second motor 542B(e.g., a gear, sprocket, pulley, etc. that is rotatably coupled to themounting plate 556 via one or more bearings or the like). The outputmember 546 can be, for example, a direct output from the second motor542B or can be operably coupled to an output of the second motor 542Bvia, for example, a belt or chain. For example, in some embodiments, anoutput of the second motor 542B can be coupled to a gear having a firstdiameter, which in turn, is operably couple to the output member 546 viaa drive chain. In such an example, the output member 546 can have asecond diameter that is greater than the first diameter such that onefull rotation of the output of the second motor 542B results in lessthan one full rotation of the output member 546. In other words, theoutput of the second motor 542B and the output member 546 can bearranged to have any suitable gear ratio and/or the like such that arotation of the output of the second motor 542B results in a rotation ofthe output member 546 with a desired rotational velocity and/or torque.In some instances, the one or more sensors 595 can be configured tosense a velocity of the output member 546 and/or a fault condition suchas, for example, a snapping or slipping of a belt or chain. Moreover,the arrangement of the drive mechanism 541 is such that the outputmember 546 rotates about an axis that is substantially perpendicular tothe surface along which the robot 500 moves. Said another way, theoutput member 546 is configured to rotate about a substantially verticalaxis in response to an output of the second motor 542B.

The output member 546 is fixedly coupled to the coupling plate 561,which in turn couples the wheel 550 and the first motor 542A to therotation subassembly 555. The arrangement of the output member 546 andthe coupling plate 561 is such that when the output member 546 isrotated, in response to an output of the second motor 542B, the couplingplate 561 and thus, the wheel 550 and the first motor 542A aresimilarly, rotated. As such, the wheel 550 is configured to rotate aboutthe first axis (e.g., substantially parallel to the surface) and thesecond axis (e.g., substantially perpendicular to the surface). In someembodiments, the rotation of the wheel 550 about the first axis advancesthe robot 500 along the surface or reverses the robot 500 along thesurface, while the rotation of the wheel 550 about the second axis isoperable in steering the robot 500 in a desired direction. Thus, thefirst motor 542A and the second motor 542B each can receive a signaland/or a flow of electric power, which is operable in moving the robot500 along the surface in a desired direction and with a desired speed,as described in further detail herein. In some embodiments, the use ofthe drive mechanism 541 having the single steerable wheel 550 can, forexample, reduce a turning radius of the robot 500, which in someinstances, can allow the robot 500 to access tight spaces or the like,as described above.

The cleaning assembly 565 included in the robot 500 can be any suitableshape, size, and/or configuration. As described above, the cleaningassembly 565 includes the mounting portion 579, which is coupled to thesupport structure 525 of the frame 510 (see e.g., FIGS. 33 and 34). Forexample, the mounting portion 579 of the cleaning assembly 565 iscoupled to the linkage 528 and the pivot member 529 for pivoting motion.More specifically, the first actuator 586 is coupled to the top plate521 of the support portion 520 of the frame 510 and a portion of thepivot member 529 such that an actuation of the first actuator 586results in a pivoting motion of the pivot member 529 relative to theframe 510. With the pivot member 529 coupled to the mounting portion 579of the cleaning assembly 565, the pivoting motion of the pivot member529 results in a pivoting of the cleaning assembly 565. The linkage 528coupled to the mounting portion 579 are configured to control adirection and/or range of motion associated with the pivoting of thecleaning assembly 565 relative to the frame 510. For example, thelinkage 528 can be, for example, substantially rigid elongate membershaving a fixed length (e.g., a fixed length during use but otherwise anadjustable length). Thus, with the linkage 528 and the pivot member 529coupled to the mounting portion 579 at different positions (see e.g.,FIG. 34), the actuation of the first actuator 586 results in a movementof the cleaning assembly 565 closer to or away from the surface to becleaned, as described in detail above with reference to, for example,the robot 400.

As shown in FIGS. 38-40, the cleaning assembly 565 includes a frame 566,a first brush 569, a second brush 571, a first motor 574A, and a secondmotor 574B. The frame 566 supports at least a portion of the cleaningassembly 565. As shown in FIG. 38, the frame 566 includes and/or can becoupled to a pair of skirts 580 that extend toward the surface fromeither side of the frame 566. The cover 567 is coupled to the frame 566and is configured to cover, house, and/or enclose at least a portion ofthe cleaning assembly 565. More particularly, the cover 567 can coupleto the frame 566 to define at least a portion of an inner volume 568that can house at least a portion of the first brush 569 and the secondbrush 571, as shown in FIGS. 39 and 40. In some embodiments, at least aportion of the inner volume 568 can define, for example, a suctionvolume or the like within which a negative pressure (e.g., via thevacuum source 585) can be formed to draw detritus into the cleaningassembly 565 and ultimately into the detritus cavity 512 the like.

The first motor 574A and the second motor 574B of the cleaning assembly565 can be any suitable motor configured, for example, to rotate thefirst brush 569 and the second brush 571, respectively. For example, asshown in FIG. 39, the first motor 574A includes an output 575A that canbe operably coupled to a first pulley 570 fixedly coupled to the firstbrush 569 (e.g., via a belt or the like, not shown) such that rotationof the output 575A results in a rotation of the first brush 569.Likewise, as shown in FIG. 40, the second motor 574B includes an output575B that can be operably coupled to a second pulley 572 fixedly coupledto the second brush 571 (e.g., via a belt or the like, not shown) suchthat rotation of the output 575B results in a rotation of the secondbrush 571. As shown in FIG. 38, the cleaning assembly 565 includes apair of shrouds 578 that are configured to cover and/or house at least aportion of the outputs 575A and 575B, the first pulley 570, and thesecond pulley 572.

In some embodiments, the arrangement of the cleaning assembly 565 can besuch that the motors 574A and 574B rotate the first brush 569 and thesecond brush 571, respectively, in substantially the same rotationaldirection. In other embodiments, the first motor 574A can be configuredto rotate the first brush 569 in a first rotational direction and thesecond motor 574B can be configured to rotate the second brush 571 in asecond rotational direction, opposite the first rotational direction.Although not shown in FIGS. 38-40, the arrangement of the cleaningassembly 565 is such that the inner volume 568 defined by the frame 566is in fluid communication with, for example, the upper storage portion508 and/or the lower storage portion 536 of the frame 510. For example,the detritus cavity 512 is in fluid communication with the inner volume568 and is configured to draw detritus from inside the inner volume 568into the detritus cavity 512 via a negative pressure produced by thevacuum source 585. The lower storage portion 536 (e.g., a liquid storageportion thereof) can be in fluid communication with the inner volume 568via one or more hoses, pipes, conduits, tubes, etc. More particularly,one or more hoses or the like can extend from the lower storage portion536 to, for example, a fluid delivery rail 507 (see e.g., FIG. 38) ofthe cleaning assembly 565. The fluid delivery rail 507, in turn, is influid communication with the inner volume 568 and thus, can deliver, forexample, a flow of a cleaning solution and/or any other suitable liquidfrom the lower storage portion 536 to the inner volume 568, as describedabove. In this manner, the cleaning assembly 565 can be similar in formand/or function to the cleaning assemblies 165, 265, 365, and/or 465described in detail above.

At least a portion of the cleaning assembly 565 can be in communicationwith the electronics system 590 and can be configured to send signals toand/or receive signals from the electronics system 590 associated withthe operation of the cleaning assembly 565. For example, in someinstances, the electronics system 590 can send a signal to the firstactuator 586 that can be operable to move the cleaning assembly 565relative to the frame 510, as described above. In some instances, theelectronics system 590 can send a signal operable in transitioning themotors 574A and 574B between an “off” operational state and an “on”operational state, which in turn, can be operable in starting a rotationof the first brush 569 and the second brush 571, respectively.

As described in detail above with reference to the robots 100, 200, 300,and/or 400, the electronics system 590 can be configured to control anysuitable portion of the robot 500 using, for example, a feedback controlmethod such as a PID control scheme and/or the like. For example, theelectronics system 590 can include and/or can be in communication withone or more electric and/or electronic components such as any number ofcameras, transceivers, beacons, encoders, odometers, tachometers,accelerometers, IMUs, proximity sensors, relay logics, switches, and/orthe like (collectively referred to herein as “sensors”). In someembodiments, the electronics system 590 can include and/or can be incommunication with any of the sensors described above. As such, thesensors can sense, detect, and/or otherwise determine one or moreoperating condition associated with the robot 500 and/or one or moreenvironmental condition associated with the environment within which therobot 500 is disposed, as described in detail above. For example, theelectronics system 590 includes and/or is in communication with at leasta user interface 592, one or more cameras 593, and the laser transceiver594. Although not shown in FIGS. 29-40, the electronics system 590 canalso include and/or can be in communication with one or more encoders,odometers, accelerometers, and/or IMUs included in the drive system 540.In this manner, the electronics system 590 can be substantially similarin form and/or function to the electronics systems 190, 290, 390, and/or490 of the robots 100, 200, 300, and/or 400, respectively. Moreover, asdescribed above, the electronics system 590 can be implemented in one ormore devices included in the robot 500 and/or one or more remote devicessuch as, for example, a controller, a personal computer, a laptop, atablet, a smartphone, a wearable electronic device, etc. In someinstances, the electronics system 590 can be configured to send dataassociated with an operating condition, status, completion rate,cleaning map, etc. to a remote device, which in turn, can be accessed bya user remotely to verify a desired operation of the robot 500.

As described in detail above with reference to the robot 200, theelectronics system 590 can receive signals associated with one or moreoperating conditions from the cameras 593, the laser transceiver 594,and/or any other suitable sensor (not shown in FIGS. 29-40). In turn,the electronics system 590 can execute a set of instructions, code,modules, etc. associated with controlling one or more subsequent actionsof the drive system 540 and/or the cleaning assembly 565, based at leastin part on the data received from the sensors. The electronics system590 can then send signals indicative of instructions to perform the oneor more subsequent actions to an associated electric and/or electroniccomponent (e.g., the first actuator 586 coupled between the frame 510and the cleaning assembly 565, a pump such as the vacuum source 585, amotor such as the motors 542A, 542B, 574A, and/or 574B, and/or any othersuitable device). In some instances, based on data received from thesensors, the electronics system 590 can be configured to increase ordecrease the velocity and/or acceleration of the robot 500, change anoperating condition of the cleaning assembly 565, temporarily pause therobot 500, remap the surface being cleaned, redefine a cleaning pathand/or cleaning plan, and/or the like, as described in detail above.

In some instances, the electronics system 590 can be configured to “shutdown,” “power off,” and/or otherwise stop operating in response to thedata received from the sensors. For example, in some instances, theelectronics system 590 can receive a signal from a sensor that indicatesan unsafe and/or undesired operating condition, in this manner, thereceiving the signal can result in the electronics system 590 initiatinga “kill switch” or the like. In some embodiments, the electronics system590 can include a physical “kill switch” that can be actuated by a user.In still other embodiments, the electronics system 590 can receive asignal from a remote device such as a smartphone, personal computer,tablet, laptop, etc. indicative of an instruction to initiate the “killswitch.” In this manner, the robot 500 can be configured to operatesafely within, for example, defined safety parameters (e.g., defined bythe user, defined by the manufacturer, etc.). Thus, the robot 500 canoperate in a substantially similar manner as described above withreference to any of the robots 100, 200, 300, and/or 400 described indetail above.

While the cleaning assemblies 265, 365, and 465 are particularly shownand described above, in other embodiments, the robots 200, 300, and/or400 can include any suitable cleaning assembly. For example, FIGS. 29-31illustrate a cleaning assembly 665 according to another embodiment. Asdescribed above with reference to the cleaning assemblies 265, 365,and/or 465, the cleaning assembly 665 includes a mounting portion 679configured to be coupled to a frame of a robot. In some embodiments, themounting portion 679 of the cleaning assembly 665 can include anysuitable linkage and/or mechanism configured to allow the cleaningassembly 665 to be moved relative to the frame, as described above.

As shown, the cleaning assembly 665 includes frame 666, a cover 667, ashroud 678, a first brush 669, a second brush 671, a motor 674, and alaser transceiver 694. The frame 666 can be configured to support atleast a portion of the cleaning assembly 665. As shown in FIG. 29, theframe 666 includes and/or can be coupled to a skirt 680 that can extendfrom the frame 666 toward a surface to be cleaned. The cover 667 iscoupled to the frame 666 and is configured to cover, house, and/orenclose at least a portion of the cleaning assembly 665. The lasertransceiver 694 is coupled to the cover 667 and is configured tofunction substantially similar to the laser transceivers 294 and/or 494described in detail above.

The cover 667 can couple to the frame 666 to define an inner volume 668that can house at least a portion of the first brush 669 and the secondbrush 671, as shown in FIG. 30. In some embodiments, at least a portionof the inner volume 668 can define, for example, a suction volume or thelike within which a negative pressure can be formed to draw detritusinto the cleaning assembly 665 and ultimately into a detritus volume orthe like. For example, as described above, the robot 600 includes thevacuum source 685 that can be in communication with the inner volume 668of the cleaning assembly 665 via, for example, a port 681 (see e.g.,FIG. 29). In this manner, the vacuum source 685 can be configured toform a negative pressure differential within the inner volume 668 thatcan be operable in drawing detritus into the cleaning assembly 665.

The motor 674 of the cleaning assembly 665 can be any suitable motorconfigured, for example, to rotate the first brush 669 and the secondbrush 671. As shown in FIG. 31, the motor 674 includes an output 675that can be operably coupled to a first pulley 670 fixedly coupled tothe first brush 669, a second pulley 672 fixedly coupled to the secondbrush 671, and a tensioner pulley 676 via a belt. As such, the motor 674can rotate the output pulley 675, which in turn, rotates the firstpulley 670, the second pulley 672, and the tensioner pulley 676.Therefore, with the first pulley 670 fixedly coupled to the first brush669 and with the second pulley 672 fixedly coupled to the second brush671, the motor 674 can be configured to rotate the first brush 669 andthe second brush 671. Moreover, as shown in FIG. 16, the shroud 678 canbe configured to cover and/or house at least a portion of the outputpulley 675, the first pulley 670, the second pulley 672, and thetensioner pulley 676.

In some embodiments, the arrangement of the cleaning assembly 665 can besuch that the motor 674 rotates the first brush 669 and the second brush671 in substantially the same rotational direction. In otherembodiments, the motor 674 can be configured to rotate the first brush669 in a first rotational direction and the second brush 671 in a secondrotational direction, opposite the first rotational direction. In stillother embodiments, the cleaning assembly 665 can include a first motorconfigured to rotate the first brush 669 and a second motor configuredto rotate the second brush 671 independent of the first brush 669. Inthis manner, the first brush 669 and the second brush 671 can berotated, for example, to sweep and/or scrub the surface to entraindebris and/or detritus within the inner volume 668. Moreover, a negativepressure produced by a vacuum source or the like (as described above)can draw the debris and/or detritus into a storage volume or the like(e.g., similar to the detritus volume 212 defined by the storage portion211 of the frame 210 described above with reference to FIG. 6). Asdescribed above with reference to the cleaning assembly 465, the brushes669 and 671 can be any suitable configuration. In this manner, thecleaning assembly 665 can be used in any suitable robot such as therobot 200, 300, and/or 400 to clean a surface on which that robot ismoving.

Any of the embodiments described herein can perform any suitable processto efficiently clean a surface having any suitable regular or irregularboundary. For example, in some embodiments, a robot can execute anysuitable process which can result in the robot following a contour of acleaning environment (e.g., surface) within a predetermined distancesuch as, for example, about 5 centimeters or less from a boundary suchas a wall or the like. Such robots can use, for example, one or morelaser scanner sensor, 3D camera sensor, range sensor, proximity sensor,etc. to estimate the shape of the contour to be followed and then canexecute a feedback control system and/or the like to substantiallymaintain a cleaning head and/or cleaning assembly within thepredetermined distance of the surface. In addition, the robot canexecute a set of processes to determine, for example, an angle of aportion of the robot relative to the desired contour. In someembodiments, the robot can execute a feedback control system and/or thelike to substantially maintain at least a portion of the robot (e.g.,the cleaning assembly) within about a 90 degree angle of the contour(i.e., perpendicular to the contour).

As described in detail above with reference to the robot 200, in someembodiments, a user can manipulate a robot to initialize the robotand/or otherwise to map the cleaning environment. In some instances,such an initializing process can include, for example, collecting datafrom any suitable sensor or the like included in the robot. For example,as a user drives the robot to initialize the robot, an electronicssystem of the robot can collect and/or store data received from one ormore of a wheel odometer, IMU, laser, depth imager, range sensor,camera, radio beacon, pressure sensor, and/or any other suitable sensor.Once the electronics system receives the data from the one or moresensors, the electronics system (e.g., a processor included therein) canperform and/or execute a set of processes and/or the like to define amap of the cleaning environment based on the data received from thesensors. With the cleaning environment mapped, the electronics systemcan execute a set of processes and/or instructions associated with usingthe environment map to graph and/or chart robot positions represented bynodes. The electronics system can then determine an efficient pathand/or a fit that passes through the nodes (e.g., a travelling salesmanmethod, algorithm, and/or the like).

In some embodiments, the electronics system of a robot can be configuredto define an efficient path to clean a surface based on, for example,decomposing a cleaning environment into sectors. More specifically, asdescribed above, the robot can be configured to determine and/or definea map of the cleaning environment. In some instances, the map can be amap or the like including specific and/or relevant information about thecleaning environment. Once the map is defined, the electronics systemcan decompose a cleaning environment into multiple sectors and candetermine, for example, an efficient path for cleaning each sectorindependently (e.g., “intra-sector cleaning”), as shown in FIG. 44. Insome instances, by first defining the map, the electronics system candetermine and/or define an efficient decomposition of the map into thesectors, for example, without a user defining the sectors. Moreover, bydefining the sectors based on the map and/or the like the electronicssystem can be configured to determine a position of the robot, acompletion percentage, and/or the like.

Once a path is determined for each sector, the electronics system candetermine, for example, an efficient path for combining the sectors(e.g., “inter-sector cleaning”). By way of example, in some instances,the electronics system can be configured to begin a mapping of a sectoror the like by defining an operation and/or path that closely follows aset of boundaries associated with that sector, as described in detailabove. Once a path for following the boundaries is defined, theelectronics system can then define a path for cleaning an areacircumscribed by the path following the boundaries. Once a path for eachsector is defined, each intra-sector cleaning path can be defined andthe inter-sector cleaning path can be defined based on a most efficientcombination of the intra-sector cleaning paths. In some instances, thedefining of the inter-sector cleaning path includes remapping thesurface. In some instances, the most efficient intra-sector orinter-sector cleaning path can be a path most likely to avoid obstaclesand/or other objects along the path.

As shown in FIG. 44, in some embodiments, the most efficient path forcleaning a sector can be a method in which the robot moves back andforth in substantially straight lines (as described above) with, forexample, at least some overlap to ensure the surface is completelycleaned (e.g., in the event that the electronics system inaccuratelydetermines the position of the robot). Alternatively, in some instances,the electronics system can determine the most efficient path forcleaning a sector can be a spiral or concentric paths. Similarly, theelectronics system can be configured to define the paths such that thereis an overlap to ensure the surface is completely cleaned. Theelectronics system can also define a most efficient way to enter and/orexit the sector based on, for example, an exit of a previous sectionthat was just cleaned and/or an entrance of a subsequent sector to becleaned. Moreover, in some instances, the electronics system can receivesignals from the sensors and/or the like while moving along the path andcan to update an intra-sector cleaning path and/or an inter-sectorcleaning path in response to a discovered obstacle or the like. In otherwords, the electronics system can remap at least a portion of thesurface to define an updated intra-sector cleaning path or an updatedinter-sector cleaning path. As such, the updated intra-sector cleaningpath and/or the updated inter-sector cleaning path can define a mostefficient cleaning path accounting for the discovered object or thelike.

While the electronics systems are described herein as sending signals toa portion of the robot (e.g., sensors, motors, actuators, pumps, etc.),which are operable in controlling at least the portion of the robot, insome instances, the electronics systems can send a flow of electricityhaving a desired electric power (e.g., not a signal including data). Insuch instances, an amount of electric power (i.e., a voltage (V) timesan amperage (A) associated with the flow of electricity), for example,can be associated with a desired operational state of an electric and/orelectronic component receiving the flow of electric power. For example,in some instances, the electronics system can deliver a first amount ofelectric power to a motor of a cleaning assembly configured to rotateone or more brushes. In turn, the motor can be configured to rotate anoutput shaft and/or pulley with a first rotational velocity. Similarly,the electronics system can deliver a second amount of electric powergreater the first amount of electric power to the motor of the cleaningassembly and in response, the motor can rotate the output shaft and/orpulley with a second rotational velocity greater than the firstrotational velocity. In other instances, the electronics system can senda signal to an electric and/or electronic component of the cleaningassembly and a flow of electric power. In such instances, the signal canbe indicative of an instruction to operate at a predeterminedoperational state, which can be associated with an amount of electricpower received.

While some of the electronics systems are described herein as receivingsignals from any suitable sensor and/or the like and based on aprocessor executing a set of instructions, a subsequent action isperformed by a portion of the robot, in other instances, a signal fromthe sensor can be operable in causing a portion of the robot to performthe subsequent action. For example, in some instances, the signal sentfrom a sensor can be operable in transitioning a switch, a fuse, abreaker, and/or any other suitable logic device from a first state, inwhich a portion of the robot receives a flow of electric power, to asecond state, in which the portion of the robot substantially does notreceive a flow of electric power. For example, a sensor can send asignal associated with a portion of a robot being placed in contact withan object as the robot moved along a surface can be operable in stoppinga rotational output of one or more motors included in a drive system.

While various embodiments have been described above, it should beunderstood that they have been presented by way of example only, and notlimitation. Where schematics and/or embodiments described above indicatecertain components arranged in certain orientations or positions, thearrangement of components may be modified. While the embodiments havebeen particularly shown and described, it will be understood thatvarious changes in form and details may be made. For example, althoughthe robots 100, 200, 300, and/or 400 are described above as includingmotors that drive and/or rotate one or more components via a belt andpulley arrangement, in other embodiments, a motor can be configured todrive any suitable component directly and/or via a chain and geararrangement. Although various embodiments have been described as havingparticular features and/or combinations of components, other embodimentsare possible having a combination of any features and/or components fromany of embodiments as discussed above.

Where methods and/or schematics described above indicate certain eventsand/or flow patterns occurring in certain order, the ordering of certainevents and/or flow patterns may be modified. Additionally certain eventsmay be performed concurrently in parallel processes when possible, aswell as performed sequentially.

Some embodiments described herein relate to a computer storage productwith a non-transitory computer-readable medium (also can be referred toas a non-transitory processor-readable medium) having instructions orcomputer code thereon for performing various computer-implementedoperations. The computer-readable medium (or processor-readable medium)is non-transitory in the sense that it does not include transitorypropagating signals (e.g., propagating electromagnetic wave carryinginformation on a transmission medium such as space or a cable). Themedia and computer code (also referred to herein as code) may be thosedesigned and constructed for the specific purpose or purposes. Examplesof non-transitory computer-readable media include, but are not limitedto: magnetic storage media such as hard disks, optical storage mediasuch as Compact Disc/Digital Video Discs (CD/DVDs), Compact Disc-ReadOnly Memories (CD-ROMs), magneto-optical storage media such as opticaldisks, carrier wave signal processing modules, and hardware devices thatare specially configured to store and execute program code, such asApplication-Specific Integrated Circuits (ASICs), Programmable LogicDevices (PLDs), Read-Only Memory (ROM) and Random-Access Memory (RAM)devices. Other embodiments described herein relate to a computer programproduct, which can include, for example, the instructions and/orcomputer code discussed herein.

Examples of computer code include, but are not limited to, micro-code ormicro-instructions, machine instructions, such as produced by acompiler, code used to produce a web service, and files containinghigher-level instructions that are executed by a computer using aninterpreter. For example, embodiments may be implemented usingimperative programming languages (e.g., C, FORTRAN, etc.), functionalprogramming languages (Haskell, Erlang, etc.), logical programminglanguages (e.g., Prolog), object-oriented programming languages (e.g.,Java, C++, etc.), or other programming languages and/or otherdevelopment tools. Additional examples of computer code include, but arenot limited to, control signals, encrypted code, and compressed code.

1.-33. (canceled)
 34. An apparatus, comprising: a frame supporting atleast one storage volume; a drive system supported by the frame andconfigured to move the frame along a surface; a cleaning assemblycoupled to the frame and configured to transfer detritus from thesurface to the at least one storage volume as the drive system moves thecleaning assembly along the surface; and an electronics system supportedby the frame and including at least a memory and a processor, theprocessor being configured to execute a set of instructions stored inthe memory associated with (1) defining a map of the surface based ondata received from at least one sensor, (2) decomposing the map into aplurality of sectors that collectively form the map, (3) defining anintra-sector path along each sector from the plurality of sectors basedat least in part on a calculated efficiency associated with transferringdetritus from that sector from the plurality of sectors to the at leastone storage volume, and (4) combining the path along each sector fromthe plurality of sectors to define an inter-sector path based at leastin part on a calculated efficiency associated with the cleaning assemblytransferring detritus from the surface to the at least one storagevolume as the drive system moves the cleaning assembly along theinter-sector path.
 35. The apparatus of claim 34, wherein the cleaningassembly is configured to transfer detritus from the surface to thestorage volume with a predetermined efficiency when the drive systemmoves the cleaning assembly along the inter-sector path.
 36. Theapparatus of claim 34, wherein the drive system includes a plurality ofwheels, each wheel from the plurality of wheels configured to rotateabout a wheel axis in response to an output of a different motor from aplurality of motors, an angle defined between each wheel axis beingsubstantially equal.
 37. The apparatus of claim 34, wherein the at leastone sensor is at least one of a light transceiver, a camera, a radio, anencoder, a range sensor, an inertial measurement unit, a compass, agyroscope, or an accelerometer.
 38. The apparatus of claim 34, whereinthe electronics system is configured to transition the drive system froma first configuration in which the drive system, receives a flow ofelectric power, to a second configuration in which the electronicssystem prevents a flow of electric power to the drive system in responseto an input from the at least one sensor.
 39. The apparatus of claim 34,wherein the electronics system is configured to transition the cleaningassembly from a first configuration in which the cleaning assembly,receives a flow of electric power, to a second configuration in whichthe electronics system prevents a flow of electric power to the cleaningassembly in response to an input from the at least one sensor.
 40. Theapparatus of claim 34, wherein the electronics system is configured toat least partially control the drive system to move the cleaningassembly along the inter-sector path.
 41. The apparatus of claim 40,wherein the electronics system is configured to at least partiallycontrol the drive system to move the cleaning assembly along theredefined path in response to receiving the at least one signalassociated with the path.
 42. A method of cleaning of a surface using acleaning robot, the method comprising: receiving data from at least onesensor as the cleaning robot is moved along the surface prior tocleaning the surface; defining a map of the surface to be cleaned basedon the data received from the at least one sensor; decomposing the mapinto a plurality of sectors, a boundary of each sector from theplurality of sectors being defined based on a calculated efficiencyassociated with the cleaning robot cleaning the mapped surface; definingan intra-sector path along each sector from the plurality of sectorsbased on a calculated efficiency associated with the cleaning robotmoving along the intra-sector path to clean a portion of the mappedsurface corresponding to that sector from the plurality of sectors; andcombining the plurality of intra-sector paths to define an inter-sectorpath based on a calculated efficiency associated with the cleaning robotmoving along the inter-sector path to clean the mapped surface.
 43. Themethod of claim 42, wherein the cleaning robot includes an electronicssystem, a drive system, a cleaning assembly, and a frame supporting eachof the electronics system, the drive system, and the cleaning assembly,the drive system configured to move the cleaning robot along the surfacein response to a signal from the electronics system, the cleaningassembly configured to clean the surface as the drive system moves thecleaning robot along the surface.
 44. The method of claim 42, whereinthe receiving data from the at least one sensor as the cleaning robot ismoved along the surface includes receiving the data from the at leastone sensor as a user moves the cleaning robot along the surface.
 45. Themethod of claim 44, wherein the receiving data from the at least onesensor includes receiving data representing objects relative to thesurface produced by the at least one sensor.
 46. The method of claim 42,further comprising: defining an updated intra-sector path for a sectorfrom the plurality of sectors in response to the cleaning robotdetecting an obstacle along the intra-sector path of that sector fromthe plurality of sectors.
 47. The method of claim 46, furthercomprising: defining an updated inter-sector path in response to thedefining the updated intra-sector path, the updated inter-sector pathbeing defined based on a calculated efficiency associated with thecleaning robot moving along the updated inter-sector path to clean themapped surface.
 48. The method of claim 42, further comprising: define acompletion percentage associated with the cleaning robot moving alongthe inter-sector path to clean the mapped surface; and sending a signalto a remote electronic device indicative of an instruction to presentdata associate with the completion percentage on a display of the remoteelectronic device.
 49. A method of cleaning of a surface using acleaning robot, the method comprising: defining a plurality of sectorscollectively forming a mapped surface, a boundary of each sector fromthe plurality of sectors being defined based on a calculated efficiencyassociated with the cleaning robot cleaning the mapped surface; defininga plurality of intra-sector paths, each intra-sector path from theplurality of intra-sector paths being a path along a different sectorfrom the plurality of sectors and being based on a calculated efficiencyassociated with the cleaning robot moving along the intra-sector pathfrom the plurality of intra-sector paths to clean a portion of themapped surface corresponding to that sector from the plurality ofsectors; combining the plurality of intra-sector paths to define aninter-sector path based on a calculated efficiency associated with thecleaning robot moving along the inter-sector path to clean the mappedsurface; defining an updated intra-sector path for a sector from theplurality of sectors in response to the cleaning robot detecting anobstacle along the intra-sector path of that sector from the pluralityof sectors; and defining an updated inter-sector path in response to thedefining the updated intra-sector path, the updated inter-sector pathbased on a calculated efficiency associated with the cleaning robotmoving along the updated inter-sector path to clean the mapped surface.50. The method of claim 49, wherein the cleaning robot includes anelectronics system, a drive system, a cleaning assembly, and a framesupporting each of the electronics system, the drive system, and thecleaning assembly, the drive system configured to move the cleaningrobot along the surface in response to a signal from the electronicssystem, the cleaning assembly configured to clean the surface as thedrive system moves the cleaning robot along the surface.
 51. The methodof claim 49, wherein the receiving data from the at least one sensor asthe cleaning robot is moved along the surface includes receiving thedata from the at least one sensor as a user moves the cleaning robotalong the surface.
 52. The method of claim 51, wherein the receivingdata from the at least one sensor includes receiving data representingobjects relative to the surface produced by the at least one sensor. 53.The method of claim 49, further comprising: define a completionpercentage associated with the cleaning robot moving along theinter-sector path to clean the mapped surface; and sending a signal to aremote electronic device indicative of an instruction to present dataassociate with the completion percentage on a display of the remoteelectronic device.